diff options
author | Jan Vrany <jan.vrany@labware.com> | 2024-11-21 12:31:20 +0000 |
---|---|---|
committer | Jan Vrany <jan.vrany@labware.com> | 2024-11-21 12:31:20 +0000 |
commit | 6153dea2fb0e7fad20f00eb0182329381ae7dcd5 (patch) | |
tree | b5dd2f8fbb79d7f5b5d51ece4c3882c9d790fbcb | |
parent | d3561c0b6975dee7e5dc277481b8c152044252da (diff) | |
download | fsf-binutils-gdb-6153dea2fb0e7fad20f00eb0182329381ae7dcd5.zip fsf-binutils-gdb-6153dea2fb0e7fad20f00eb0182329381ae7dcd5.tar.gz fsf-binutils-gdb-6153dea2fb0e7fad20f00eb0182329381ae7dcd5.tar.bz2 |
gdb/python: add domain property to gdb.Symbol
Reviewed-By: Eli Zaretskii <eliz@gnu.org>
-rw-r--r-- | gdb/NEWS | 2 | ||||
-rw-r--r-- | gdb/doc/python.texi | 5 | ||||
-rw-r--r-- | gdb/python/py-symbol.c | 11 | ||||
-rw-r--r-- | gdb/testsuite/gdb.python/py-symbol.exp | 1 |
4 files changed, 19 insertions, 0 deletions
@@ -86,6 +86,8 @@ ** Added gdb.Block.subblocks. Returns a list of blocks contained in that block. + ** Added gdb.Symbol.domain. Contains the domain of the symbol. + * Debugger Adapter Protocol changes ** The "scopes" request will now return a scope holding global diff --git a/gdb/doc/python.texi b/gdb/doc/python.texi index 290e9fe..09e3747 100644 --- a/gdb/doc/python.texi +++ b/gdb/doc/python.texi @@ -6203,6 +6203,11 @@ of a symbol. Each address class is a constant defined in the @code{gdb} module and described later in this chapter. @end defvar +@defvar Symbol.domain +The domain of the symbol. Each domain is a constant defined in the +@code{gdb} module and described later in this chapter. +@end defvar + @defvar Symbol.needs_frame This is @code{True} if evaluating this symbol's value requires a frame (@pxref{Frames In Python}) and @code{False} otherwise. Typically, diff --git a/gdb/python/py-symbol.c b/gdb/python/py-symbol.c index 24b53bb..38eead9 100644 --- a/gdb/python/py-symbol.c +++ b/gdb/python/py-symbol.c @@ -154,6 +154,16 @@ sympy_get_addr_class (PyObject *self, void *closure) } static PyObject * +sympy_get_domain (PyObject *self, void *closure) +{ + struct symbol *symbol = nullptr; + + SYMPY_REQUIRE_VALID (self, symbol); + + return gdb_py_object_from_longest (symbol->domain ()).release (); +} + +static PyObject * sympy_is_argument (PyObject *self, void *closure) { struct symbol *symbol = NULL; @@ -707,6 +717,7 @@ static gdb_PyGetSetDef symbol_object_getset[] = { This is either name or linkage_name, depending on whether the user asked GDB\n\ to display demangled or mangled names.", NULL }, { "addr_class", sympy_get_addr_class, NULL, "Address class of the symbol." }, + { "domain", sympy_get_domain, nullptr, "Domain of the symbol." }, { "is_argument", sympy_is_argument, NULL, "True if the symbol is an argument of a function." }, { "is_constant", sympy_is_constant, NULL, diff --git a/gdb/testsuite/gdb.python/py-symbol.exp b/gdb/testsuite/gdb.python/py-symbol.exp index c174ba4..2a74c97 100644 --- a/gdb/testsuite/gdb.python/py-symbol.exp +++ b/gdb/testsuite/gdb.python/py-symbol.exp @@ -135,6 +135,7 @@ gdb_test "python print (func.name)" "func" "test func.name" gdb_test "python print (func.print_name)" "func" "test func.print_name" gdb_test "python print (func.linkage_name)" "func" "test func.linkage_name" gdb_test "python print (func.addr_class == gdb.SYMBOL_LOC_BLOCK)" "True" "test func.addr_class" +gdb_test "python print (func.domain == gdb.SYMBOL_FUNCTION_DOMAIN)" "True" "test func.domain" # Stop in a second file and ensure we find its local static symbol. gdb_breakpoint "function_in_other_file" |