diff options
author | Tom Tromey <tom@tromey.com> | 2018-10-06 22:55:19 -0600 |
---|---|---|
committer | Tom Tromey <tom@tromey.com> | 2018-10-06 23:20:55 -0600 |
commit | 51e78fc5fa21870d415c52f90b93e3c6ad57be46 (patch) | |
tree | 38417b51d91528bd7cc8e07b5c7a70a43eec12ac /gdb/python | |
parent | f9e48344d54f45368a5e449fb2ccca70a723cd3a (diff) | |
download | binutils-gdb-51e78fc5fa21870d415c52f90b93e3c6ad57be46.tar.gz |
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/python')
-rw-r--r-- | gdb/python/py-symbol.c | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/gdb/python/py-symbol.c b/gdb/python/py-symbol.c index 881ab299714..8ae5658eb4e 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", |