aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
authorTom Tromey <tom@tromey.com>2018-10-06 22:55:19 -0600
committerTom Tromey <tom@tromey.com>2018-10-06 23:20:55 -0600
commit51e78fc5fa21870d415c52f90b93e3c6ad57be46 (patch)
tree38417b51d91528bd7cc8e07b5c7a70a43eec12ac /gdb
parentf9e48344d54f45368a5e449fb2ccca70a723cd3a (diff)
downloadgdb-51e78fc5fa21870d415c52f90b93e3c6ad57be46.zip
gdb-51e78fc5fa21870d415c52f90b93e3c6ad57be46.tar.gz
gdb-51e78fc5fa21870d415c52f90b93e3c6ad57be46.tar.bz2
Update symbol domain and location values for Python
In the distant past, there was no distinction between domain_enum and search_domain. At that point, there were two sets of enumerators in a single enum -- which is why these were eventually split. This confusion leaked out to the Python API as well, as noted in PR python/21765. This patch deprecates the constants that aren't useful to the Python API. They are left in place for now, but removed from the documentation. Also, their values are changed so that, if used, they might work. Finally, missing domains and location constants are added. gdb/ChangeLog 2018-10-06 Tom Tromey <tom@tromey.com> PR python/21765: * python/py-symbol.c (gdbpy_initialize_symbols): Redefine SYMBOL_VARIABLES_DOMAIN, SYMBOL_FUNCTIONS_DOMAIN, SYMBOL_TYPES_DOMAIN. Define SYMBOL_MODULE_DOMAIN, SYMBOL_COMMON_BLOCK_DOMAIN, SYMBOL_LOC_COMMON_BLOCK. gdb/doc/ChangeLog 2018-10-06 Tom Tromey <tom@tromey.com> PR python/21765: * python.texi (Symbols In Python): Document the module and common-block domains. Remove documentation for incorrect domains.
Diffstat (limited to 'gdb')
-rw-r--r--gdb/ChangeLog8
-rw-r--r--gdb/NEWS8
-rw-r--r--gdb/doc/ChangeLog7
-rw-r--r--gdb/doc/python.texi24
-rw-r--r--gdb/python/py-symbol.c24
5 files changed, 53 insertions, 18 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 0454d15..aac1c6d 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,13 @@
2018-10-06 Tom Tromey <tom@tromey.com>
+ PR python/21765:
+ * python/py-symbol.c (gdbpy_initialize_symbols): Redefine
+ SYMBOL_VARIABLES_DOMAIN, SYMBOL_FUNCTIONS_DOMAIN,
+ SYMBOL_TYPES_DOMAIN. Define SYMBOL_MODULE_DOMAIN,
+ SYMBOL_COMMON_BLOCK_DOMAIN, SYMBOL_LOC_COMMON_BLOCK.
+
+2018-10-06 Tom Tromey <tom@tromey.com>
+
PR build/17077:
* Makefile.in (OPCODES_CFLAGS): Remove "-I$(OPCODES_SRC)/..".
* arc-tdep.c, frv-tdep.c, lm32-tdep.c, mep-tdep.c,
diff --git a/gdb/NEWS b/gdb/NEWS
index b409aa4..f3bdeea 100644
--- a/gdb/NEWS
+++ b/gdb/NEWS
@@ -108,6 +108,14 @@ CSKY GNU/LINUX csky*-*-linux
** The gdb.Progspace type has a new 'objfiles' method, which returns the list
of objfiles associated to that program space.
+ ** gdb.SYMBOL_LOC_COMMON_BLOCK, gdb.SYMBOL_MODULE_DOMAIN, and
+ gdb.SYMBOL_COMMON_BLOCK_DOMAIN were added to reflect changes to
+ the gdb core.
+
+ ** gdb.SYMBOL_VARIABLES_DOMAIN, gdb.SYMBOL_FUNCTIONS_DOMAIN, and
+ gdb.SYMBOL_TYPES_DOMAIN are now deprecated. These were never
+ correct and did not work properly.
+
* Configure changes
--enable-ubsan
diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog
index 99aefc2..2e28949 100644
--- a/gdb/doc/ChangeLog
+++ b/gdb/doc/ChangeLog
@@ -1,3 +1,10 @@
+2018-10-06 Tom Tromey <tom@tromey.com>
+
+ PR python/21765:
+ * python.texi (Symbols In Python): Document the module and
+ common-block domains. Remove documentation for incorrect
+ domains.
+
2018-10-03 Tom Tromey <tom@tromey.com>
* gdb.texinfo (Configure Options): Document --enable-ubsan.
diff --git a/gdb/doc/python.texi b/gdb/doc/python.texi
index 1035be3..0a8f7a1 100644
--- a/gdb/doc/python.texi
+++ b/gdb/doc/python.texi
@@ -4794,18 +4794,13 @@ This domain holds struct, union and enum type names.
@item gdb.SYMBOL_LABEL_DOMAIN
This domain contains names of labels (for gotos).
-@vindex SYMBOL_VARIABLES_DOMAIN
-@item gdb.SYMBOL_VARIABLES_DOMAIN
-This domain holds a subset of the @code{SYMBOLS_VAR_DOMAIN}; it
-contains everything minus functions and types.
-
-@vindex SYMBOL_FUNCTIONS_DOMAIN
-@item gdb.SYMBOL_FUNCTIONS_DOMAIN
-This domain contains all functions.
-
-@vindex SYMBOL_TYPES_DOMAIN
-@item gdb.SYMBOL_TYPES_DOMAIN
-This domain contains all types.
+@vindex SYMBOL_MODULE_DOMAIN
+@item gdb.SYMBOL_MODULE_DOMAIN
+This domain contains names of Fortran module types.
+
+@vindex SYMBOL_COMMON_BLOCK_DOMAIN
+@item gdb.SYMBOL_COMMON_BLOCK_DOMAIN
+This domain contains names of Fortran common blocks.
@end vtable
The available address class categories in @code{gdb.Symbol} are represented
@@ -4876,6 +4871,11 @@ The value does not actually exist in the program.
@vindex SYMBOL_LOC_COMPUTED
@item gdb.SYMBOL_LOC_COMPUTED
The value's address is a computed location.
+
+@vindex SYMBOL_LOC_COMPUTED
+@item gdb.SYMBOL_LOC_COMPUTED
+The value's address is a symbol. This is only used for Fortran common
+blocks.
@end vtable
@node Symbol Tables In Python
diff --git a/gdb/python/py-symbol.c b/gdb/python/py-symbol.c
index 881ab29..8ae5658 100644
--- a/gdb/python/py-symbol.c
+++ b/gdb/python/py-symbol.c
@@ -537,6 +537,8 @@ gdbpy_initialize_symbols (void)
LOC_OPTIMIZED_OUT) < 0
|| PyModule_AddIntConstant (gdb_module, "SYMBOL_LOC_COMPUTED",
LOC_COMPUTED) < 0
+ || PyModule_AddIntConstant (gdb_module, "SYMBOL_LOC_COMMON_BLOCK",
+ LOC_COMMON_BLOCK) < 0
|| PyModule_AddIntConstant (gdb_module, "SYMBOL_LOC_REGPARM_ADDR",
LOC_REGPARM_ADDR) < 0
|| PyModule_AddIntConstant (gdb_module, "SYMBOL_UNDEF_DOMAIN",
@@ -545,14 +547,24 @@ gdbpy_initialize_symbols (void)
VAR_DOMAIN) < 0
|| PyModule_AddIntConstant (gdb_module, "SYMBOL_STRUCT_DOMAIN",
STRUCT_DOMAIN) < 0
- || PyModule_AddIntConstant (gdb_module, "SYMBOL_LABEL_DOMAIN",
- LABEL_DOMAIN) < 0
- || PyModule_AddIntConstant (gdb_module, "SYMBOL_VARIABLES_DOMAIN",
- VARIABLES_DOMAIN) < 0
+ || PyModule_AddIntConstant (gdb_module, "SYMBOL_MODULE_DOMAIN",
+ MODULE_DOMAIN) < 0
+ || PyModule_AddIntConstant (gdb_module, "SYMBOL_COMMON_BLOCK_DOMAIN",
+ COMMON_BLOCK_DOMAIN) < 0)
+ return -1;
+
+ /* These remain defined for compatibility, but as they were never
+ correct, they are no longer documented. Eventually we can remove
+ them. These exist because at one time, enum search_domain and
+ enum domain_enum_tag were combined -- but different values were
+ used differently. Here we try to give them values that will make
+ sense if they are passed to gdb.lookup_symbol. */
+ if (PyModule_AddIntConstant (gdb_module, "SYMBOL_VARIABLES_DOMAIN",
+ VAR_DOMAIN) < 0
|| PyModule_AddIntConstant (gdb_module, "SYMBOL_FUNCTIONS_DOMAIN",
- FUNCTIONS_DOMAIN) < 0
+ VAR_DOMAIN) < 0
|| PyModule_AddIntConstant (gdb_module, "SYMBOL_TYPES_DOMAIN",
- TYPES_DOMAIN) < 0)
+ VAR_DOMAIN) < 0)
return -1;
return gdb_pymodule_addobject (gdb_module, "Symbol",