aboutsummaryrefslogtreecommitdiff
path: root/gdb/python/py-symtab.c
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/python/py-symtab.c')
-rw-r--r--gdb/python/py-symtab.c42
1 files changed, 41 insertions, 1 deletions
diff --git a/gdb/python/py-symtab.c b/gdb/python/py-symtab.c
index 5c1c6bb..107cdec 100644
--- a/gdb/python/py-symtab.c
+++ b/gdb/python/py-symtab.c
@@ -138,6 +138,21 @@ stpy_fullname (PyObject *self, PyObject *args)
Py_RETURN_NONE;
}
+/* Implementation of gdb.Symtab.is_valid (self) -> Boolean.
+ Returns True if this Symbol table still exists in GDB. */
+
+static PyObject *
+stpy_is_valid (PyObject *self, PyObject *args)
+{
+ struct symtab *symtab = NULL;
+
+ symtab = symtab_object_to_symtab (self);
+ if (symtab == NULL)
+ Py_RETURN_FALSE;
+
+ Py_RETURN_TRUE;
+}
+
static PyObject *
salpy_str (PyObject *self)
{
@@ -212,6 +227,21 @@ salpy_get_symtab (PyObject *self, void *closure)
return (PyObject *) self_sal->symtab;
}
+/* Implementation of gdb.Symtab_and_line.is_valid (self) -> Boolean.
+ Returns True if this Symbol table and line object still exists GDB. */
+
+static PyObject *
+salpy_is_valid (PyObject *self, PyObject *args)
+{
+ struct symtab_and_line *sal;
+
+ sal = sal_object_to_symtab_and_line (self);
+ if (sal == NULL)
+ Py_RETURN_FALSE;
+
+ Py_RETURN_TRUE;
+}
+
static void
salpy_dealloc (PyObject *self)
{
@@ -441,6 +471,9 @@ static PyGetSetDef symtab_object_getset[] = {
};
static PyMethodDef symtab_object_methods[] = {
+ { "is_valid", stpy_is_valid, METH_NOARGS,
+ "is_valid () -> Boolean.\n\
+Return true if this symbol table is valid, false if not." },
{ "fullname", stpy_fullname, METH_NOARGS,
"fullname () -> String.\n\
Return the symtab's full source filename." },
@@ -489,6 +522,13 @@ static PyGetSetDef sal_object_getset[] = {
{NULL} /* Sentinel */
};
+static PyMethodDef sal_object_methods[] = {
+ { "is_valid", salpy_is_valid, METH_NOARGS,
+ "is_valid () -> Boolean.\n\
+Return true if this symbol table and line is valid, false if not." },
+ {NULL} /* Sentinel */
+};
+
static PyTypeObject sal_object_type = {
PyObject_HEAD_INIT (NULL)
0, /*ob_size*/
@@ -518,7 +558,7 @@ static PyTypeObject sal_object_type = {
0, /*tp_weaklistoffset */
0, /*tp_iter */
0, /*tp_iternext */
- 0, /*tp_methods */
+ sal_object_methods, /*tp_methods */
0, /*tp_members */
sal_object_getset /*tp_getset */
};