aboutsummaryrefslogtreecommitdiff
path: root/gdb/python
diff options
context:
space:
mode:
authorAndrew Burgess <aburgess@redhat.com>2023-09-07 11:18:16 +0100
committerAndrew Burgess <aburgess@redhat.com>2023-09-28 15:33:13 +0100
commit5ce85461a143e0d564b6dfa6407374851899d491 (patch)
treeb3491a93a686d78c5d00090781ccc450abff6d4d /gdb/python
parentce65386db6653171334434ae488a0c0e10a60871 (diff)
downloadgdb-5ce85461a143e0d564b6dfa6407374851899d491.zip
gdb-5ce85461a143e0d564b6dfa6407374851899d491.tar.gz
gdb-5ce85461a143e0d564b6dfa6407374851899d491.tar.bz2
gdb/python: new Progspace.symbol_file attribute
Add a new Progspace.symbol_file attribute. This attribute holds the gdb.Objfile object that corresponds to Progspace.filename, or None if there is no main symbol file currently set. Currently, to get this gdb.Objfile, a user would need to use Progspace.objfiles, and then search for the objfile with a name that matches Progspace.filename -- which should work just fine, but having direct access seems a little nicer. Reviewed-By: Eli Zaretskii <eliz@gnu.org> Approved-By: Tom Tromey <tom@tromey.com>
Diffstat (limited to 'gdb/python')
-rw-r--r--gdb/python/py-progspace.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/gdb/python/py-progspace.c b/gdb/python/py-progspace.c
index 2b1d160..929c5f4 100644
--- a/gdb/python/py-progspace.c
+++ b/gdb/python/py-progspace.c
@@ -111,6 +111,26 @@ pspy_get_filename (PyObject *self, void *closure)
Py_RETURN_NONE;
}
+/* Implement the gdb.Progspace.symbol_file attribute. Retun the
+ gdb.Objfile corresponding to the currently loaded symbol-file, or None
+ if no symbol-file is loaded. If the Progspace is invalid then raise an
+ exception. */
+
+static PyObject *
+pspy_get_symbol_file (PyObject *self, void *closure)
+{
+ pspace_object *obj = (pspace_object *) self;
+
+ PSPY_REQUIRE_VALID (obj);
+
+ struct objfile *objfile = obj->pspace->symfile_object_file;
+
+ if (objfile != nullptr)
+ return objfile_to_objfile_object (objfile).release ();
+
+ Py_RETURN_NONE;
+}
+
static void
pspy_dealloc (PyObject *self)
{
@@ -573,6 +593,9 @@ static gdb_PyGetSetDef pspace_getset[] =
"The __dict__ for this progspace.", &pspace_object_type },
{ "filename", pspy_get_filename, NULL,
"The filename of the progspace's main symbol file, or None.", nullptr },
+ { "symbol_file", pspy_get_symbol_file, nullptr,
+ "The gdb.Objfile for the progspace's main symbol file, or None.",
+ nullptr},
{ "pretty_printers", pspy_get_printers, pspy_set_printers,
"Pretty printers.", NULL },
{ "frame_filters", pspy_get_frame_filters, pspy_set_frame_filters,