aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDoug Evans <dje@google.com>2014-10-17 10:57:26 -0700
committerDoug Evans <dje@google.com>2014-10-17 10:57:26 -0700
commitd096d8c11e4ab306d45e8dca811db2fa33e933a8 (patch)
treeca71c67d24b07bdcad5dbffd459ff1f29e6825fc
parenta80db0157c31d3f0fbb37ea40384b11041429a2f (diff)
downloadgdb-d096d8c11e4ab306d45e8dca811db2fa33e933a8.zip
gdb-d096d8c11e4ab306d45e8dca811db2fa33e933a8.tar.gz
gdb-d096d8c11e4ab306d45e8dca811db2fa33e933a8.tar.bz2
Add gdb.Objfile.progspace attribute.
gdb/ChangeLog: * NEWS: Mention new gdb.Objfile.progspace attribute. * python/py-objfile.c (objfpy_get_progspace): New function. (objfile_getset): New entry for "progspace". gdb/doc/ChangeLog: * python.texi (Objfiles In Python): Document new progspace attribute. gdb/testsuite/ChangeLog: * gdb.python/py-objfile.exp: Test progspace attribute.
-rw-r--r--gdb/ChangeLog6
-rw-r--r--gdb/NEWS2
-rw-r--r--gdb/doc/ChangeLog4
-rw-r--r--gdb/doc/python.texi5
-rw-r--r--gdb/python/py-objfile.c20
-rw-r--r--gdb/testsuite/ChangeLog4
-rw-r--r--gdb/testsuite/gdb.python/py-objfile.exp2
7 files changed, 43 insertions, 0 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index f1a85de..4122ad0 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,9 @@
+2014-10-17 Doug Evans <dje@google.com>
+
+ * NEWS: Mention new gdb.Objfile.progspace attribute.
+ * python/py-objfile.c (objfpy_get_progspace): New function.
+ (objfile_getset): New entry for "progspace".
+
2014-10-17 Pedro Alves <palves@redhat.com>
PR gdb/17471
diff --git a/gdb/NEWS b/gdb/NEWS
index 5a22926..76b44e8 100644
--- a/gdb/NEWS
+++ b/gdb/NEWS
@@ -9,6 +9,8 @@
** You can now access frame registers from Python scripts.
** New attribute 'producer' for gdb.Symtab objects.
+ ** gdb.Objfile objects have a new attribute "progspace",
+ which is the gdb.Progspace object of the containing program space.
* New Python-based convenience functions:
diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog
index 432899b..8c00c32 100644
--- a/gdb/doc/ChangeLog
+++ b/gdb/doc/ChangeLog
@@ -1,3 +1,7 @@
+2014-10-17 Doug Evans <dje@google.com>
+
+ * python.texi (Objfiles In Python): Document new progspace attribute.
+
2014-10-17 Pedro Alves <palves@redhat.com>
* gdb.texinfo (Ada Tasks and Core Files): Delete mention of Tru64.
diff --git a/gdb/doc/python.texi b/gdb/doc/python.texi
index 81ec11b..84d6637 100644
--- a/gdb/doc/python.texi
+++ b/gdb/doc/python.texi
@@ -3392,6 +3392,11 @@ class.
The file name of the objfile as a string.
@end defvar
+@defvar Objfile.progspace
+The containing program space of the objfile as a @code{gdb.Progspace}
+object. @xref{Progspaces In Python}.
+@end defvar
+
@defvar Objfile.pretty_printers
The @code{pretty_printers} attribute is a list of functions. It is
used to look up pretty-printers. A @code{Value} is passed to each
diff --git a/gdb/python/py-objfile.c b/gdb/python/py-objfile.c
index df29691..e868223 100644
--- a/gdb/python/py-objfile.c
+++ b/gdb/python/py-objfile.c
@@ -62,6 +62,24 @@ objfpy_get_filename (PyObject *self, void *closure)
Py_RETURN_NONE;
}
+/* An Objfile method which returns the objfile's progspace, or None. */
+
+static PyObject *
+objfpy_get_progspace (PyObject *self, void *closure)
+{
+ objfile_object *obj = (objfile_object *) self;
+
+ if (obj->objfile)
+ {
+ PyObject *pspace = pspace_to_pspace_object (obj->objfile->pspace);
+
+ Py_XINCREF (pspace);
+ return pspace;
+ }
+
+ Py_RETURN_NONE;
+}
+
static void
objfpy_dealloc (PyObject *o)
{
@@ -338,6 +356,8 @@ static PyGetSetDef objfile_getset[] =
{
{ "filename", objfpy_get_filename, NULL,
"The objfile's filename, or None.", NULL },
+ { "progspace", objfpy_get_progspace, NULL,
+ "The objfile's progspace, or None.", NULL },
{ "pretty_printers", objfpy_get_printers, objfpy_set_printers,
"Pretty printers.", NULL },
{ "frame_filters", objfpy_get_frame_filters,
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 6a1d42e..129cd7a 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2014-10-17 Doug Evans <dje@google.com>
+
+ * gdb.python/py-objfile.exp: Test progspace attribute.
+
2014-10-17 Luis Machado <lgustavo@codesourcery.com>
* gdb.guile/scm-breakpoint.exp: Do not assume any
diff --git a/gdb/testsuite/gdb.python/py-objfile.exp b/gdb/testsuite/gdb.python/py-objfile.exp
index 1d2f550..8796170 100644
--- a/gdb/testsuite/gdb.python/py-objfile.exp
+++ b/gdb/testsuite/gdb.python/py-objfile.exp
@@ -39,6 +39,8 @@ gdb_py_test_silent_cmd "python objfile = sym\[0\].symtab.objfile" \
gdb_test "python print (objfile.filename)" ".*py-objfile.*" \
"Get objfile file name"
+gdb_test "python print (objfile.progspace)" "<gdb\.Progspace object at .*>" \
+ "Get objfile program space"
gdb_test "python print (objfile.is_valid())" "True" \
"Get objfile validity"
gdb_unload