gdb/ChangeLog:
* NEWS: Mention gdb.Objfile.owner.
* python/py-objfile.c (objfpy_get_owner): New function.
(objfile_getset): Add "owner".
gdb/doc/ChangeLog:
* python.texi (Objfiles In Python): Document Objfile.owner.
gdb/testsuite/ChangeLog:
* gdb.python/py-objfile.exp: Add tests for objfile.owner.
+2014-12-08 Doug Evans <dje@google.com>
+
+ * NEWS: Mention gdb.Objfile.owner.
+ * python/py-objfile.c (objfpy_get_owner): New function.
+ (objfile_getset): Add "owner".
+
2014-12-05 Jan Kratochvil <jan.kratochvil@redhat.com>
* symtab.c (lookup_symbol_in_objfile_symtabs): New declaration.
2014-12-05 Jan Kratochvil <jan.kratochvil@redhat.com>
* symtab.c (lookup_symbol_in_objfile_symtabs): New declaration.
** 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 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.
+ ** gdb.Objfile objects have a new attribute "owner".
** gdb.Objfile objects have a new attribute "build_id",
which is the build ID generated when the file was built.
** gdb.Objfile objects have a new method "add_separate_debug_file".
** gdb.Objfile objects have a new attribute "build_id",
which is the build ID generated when the file was built.
** gdb.Objfile objects have a new method "add_separate_debug_file".
+2014-12-08 Doug Evans <dje@google.com>
+
+ * python.texi (Objfiles In Python): Document Objfile.owner.
+
2014-12-04 Doug Evans <dje@google.com>
* python.texi (Objfiles In Python): Document
2014-12-04 Doug Evans <dje@google.com>
* python.texi (Objfiles In Python): Document
The file name of the objfile as a string.
@end defvar
The file name of the objfile as a string.
@end defvar
+@defvar Objfile.owner
+For separate debug info objfiles this is the corresponding @code{gdb.Objfile}
+object that debug info is being provided for.
+Otherwise this is @code{None}.
+Separate debug info objfiles are added with the
+@code{gdb.Objfile.add_separate_debug_file} method, described below.
+@end defvar
+
@defvar Objfile.build_id
The build ID of the objfile as a string.
If the objfile does not have a build ID then the value is @code{None}.
@defvar Objfile.build_id
The build ID of the objfile as a string.
If the objfile does not have a build ID then the value is @code{None}.
+/* If SELF is a separate debug-info file, return the "backlink" field.
+ Otherwise return None. */
+
+static PyObject *
+objfpy_get_owner (PyObject *self, void *closure)
+{
+ objfile_object *obj = (objfile_object *) self;
+ struct objfile *objfile = obj->objfile;
+ struct objfile *owner;
+
+ OBJFPY_REQUIRE_VALID (obj);
+
+ owner = objfile->separate_debug_objfile_backlink;
+
+ if (owner != NULL)
+ return objfile_to_objfile_object (owner);
+ Py_RETURN_NONE;
+}
+
/* An Objfile method which returns the objfile's build id, or None. */
static PyObject *
/* An Objfile method which returns the objfile's build id, or None. */
static PyObject *
"The __dict__ for this objfile.", &objfile_object_type },
{ "filename", objfpy_get_filename, NULL,
"The objfile's filename, or None.", NULL },
"The __dict__ for this objfile.", &objfile_object_type },
{ "filename", objfpy_get_filename, NULL,
"The objfile's filename, or None.", NULL },
+ { "owner", objfpy_get_owner, NULL,
+ "The objfile owner of separate debug info objfiles, or None.",
+ NULL },
{ "build_id", objfpy_get_build_id, NULL,
"The objfile's build id, or None.", NULL },
{ "progspace", objfpy_get_progspace, NULL,
{ "build_id", objfpy_get_build_id, NULL,
"The objfile's build id, or None.", NULL },
{ "progspace", objfpy_get_progspace, NULL,
+2014-12-08 Doug Evans <dje@google.com>
+
+ * gdb.python/py-objfile.exp: Add tests for objfile.owner.
+
2014-12-05 Yao Qi <yao@codesourcery.com>
* gdb.guile/scm-error.exp: Remove the third argument to
2014-12-05 Yao Qi <yao@codesourcery.com>
* gdb.guile/scm-error.exp: Remove the third argument to
gdb_py_test_silent_cmd "python objfile = gdb.objfiles()\[0\]" \
"Get no-debug objfile file" 1
gdb_py_test_silent_cmd "python objfile = gdb.objfiles()\[0\]" \
"Get no-debug objfile file" 1
+gdb_test "python print (objfile.owner)" "None" \
+ "Test owner of real objfile."
+
gdb_test "p main" "= {<text variable, no debug info>} $hex <main>" \
"print main without debug info"
gdb_test "p main" "= {<text variable, no debug info>} $hex <main>" \
"print main without debug info"
gdb_py_test_silent_cmd "python sep_objfile = gdb.objfiles()\[0\]" \
"Get separate debug info objfile" 1
gdb_py_test_silent_cmd "python sep_objfile = gdb.objfiles()\[0\]" \
"Get separate debug info objfile" 1
+gdb_test "python print (sep_objfile.owner.filename)" "${testfile}2" \
+ "Test owner of separate debug file"
+
gdb_test "p main" "= {int \\(\\)} $hex <main>" \
"print main with debug info"
gdb_test "p main" "= {int \\(\\)} $hex <main>" \
"print main with debug info"