From 51e78fc5fa21870d415c52f90b93e3c6ad57be46 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Sat, 6 Oct 2018 22:55:19 -0600 Subject: 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 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 PR python/21765: * python.texi (Symbols In Python): Document the module and common-block domains. Remove documentation for incorrect domains. --- gdb/python/py-symbol.c | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) (limited to 'gdb/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", -- cgit v1.1