Add an objfile getter to gdb.Type

This allows users of the Python API to find the objfile where a type
was defined.

gdb/ChangeLog:

gdb/ChangeLog
2019-06-04  Christian Biesinger  <cbiesinger@google.com>

	Add objfile property to gdb.Type.
	* gdb/NEWS: Mention Python API addition.
	* gdb/python/py-type.c (typy_get_objfile): New method.

gdb/doc/ChangeLog
2019-06-04  Christian Biesinger  <cbiesinger@google.com>

	* gdb/doc/python.texi: Document new gdb.Type.objfile property.

gdb/testsuite/ChangeLog
2019-06-04  Christian Biesinger  <cbiesinger@google.com>

	* gdb/testsuite/gdb.python/py-type.exp: Test for new
	  gdb.Type.objfile property.
This commit is contained in:
Christian Biesinger via gdb-patches 2019-05-23 16:37:29 -05:00 committed by Tom Tromey
parent a9d96ab97e
commit e1f2e1a2da
7 changed files with 41 additions and 0 deletions

View file

@ -413,6 +413,18 @@ typy_get_tag (PyObject *self, void *closure)
return PyString_FromString (tagname);
}
/* Return the type's objfile, or None. */
static PyObject *
typy_get_objfile (PyObject *self, void *closure)
{
struct type *type = ((type_object *) self)->type;
struct objfile *objfile = TYPE_OBJFILE (type);
if (objfile == nullptr)
Py_RETURN_NONE;
return objfile_to_objfile_object (objfile).release ();
}
/* Return the type, stripped of typedefs. */
static PyObject *
typy_strip_typedefs (PyObject *self, PyObject *args)
@ -1419,6 +1431,8 @@ static gdb_PyGetSetDef type_object_getset[] =
"The size of this type, in bytes.", NULL },
{ "tag", typy_get_tag, NULL,
"The tag name for this type, or None.", NULL },
{ "objfile", typy_get_objfile, NULL,
"The objfile this type was defined in, or None.", NULL },
{ NULL }
};