aboutsummaryrefslogtreecommitdiff
path: root/gdb/python/py-block.c
diff options
context:
space:
mode:
authorTom Tromey <tom@tromey.com>2013-12-26 19:50:05 -0700
committerTom Tromey <tom@tromey.com>2018-09-16 06:52:37 -0600
commit8743a9cdd20055e02a20c24c37b5312e3e626691 (patch)
tree982605dd428a62aff01ce080fbd68221e3f425e1 /gdb/python/py-block.c
parent752312ba4e53fea8e77ae240a35a7b508c6ca619 (diff)
downloadbinutils-8743a9cdd20055e02a20c24c37b5312e3e626691.zip
binutils-8743a9cdd20055e02a20c24c37b5312e3e626691.tar.gz
binutils-8743a9cdd20055e02a20c24c37b5312e3e626691.tar.bz2
Add more methods to gdb.Progspace
There are a number of global functions in the gdb Python module which really should be methods on Progspace. This patch adds new methods to Progspace and then redefines these globals in terms of these new methods. This version has been rebased on the related changes that Simon recently put in. Built and regtested on x86-64 Fedora 28. gdb/ChangeLog 2018-09-16 Tom Tromey <tom@tromey.com> * python/lib/gdb/__init__.py (current_progspace, objfiles) (solib_name, block_for_pc, find_pc_line): New functions. (execute_unwinders): Update. * python/py-block.c (gdbpy_block_for_pc): Remove. * python/py-inferior.c (infpy_get_progspace): New function. (inferior_object_getset) <progspace>: Add. * python/py-progspace.c (pspy_objfiles): Rewrite. (pspy_solib_name, pspy_block_for_pc) (pspy_find_pc_line, pspy_is_valid): New functions. (progspace_object_methods): Add entries for solib_name, block_for_pc, find_pc_line, is_valid. * python/python-internal.h (gdbpy_block_for_pc) (build_objfiles_list): Don't declare. * python/python.c: Don't include solib.h. (gdbpy_solib_name, gdbpy_find_pc_line) (gdbpy_get_current_progspace, build_objfiles_list) (gdbpy_objfiles): Remove. (GdbMethods) <current_progspace, objfiles, block_for_pc, solib_name, find_pc_line>: Remove entries. gdb/doc/ChangeLog 2018-09-16 Tom Tromey <tom@tromey.com> * python.texi (Basic Python): Update docs for find_pc_line, solib_name. (Progspaces In Python): Update docs for current_progspace. Document block_for_pc, find_pc_line, is_valid, nsolib_name. Move method documentation before example.
Diffstat (limited to 'gdb/python/py-block.c')
-rw-r--r--gdb/python/py-block.c38
1 files changed, 0 insertions, 38 deletions
diff --git a/gdb/python/py-block.c b/gdb/python/py-block.c
index 70a0a76..5fc33f0 100644
--- a/gdb/python/py-block.c
+++ b/gdb/python/py-block.c
@@ -366,44 +366,6 @@ blpy_iter_is_valid (PyObject *self, PyObject *args)
Py_RETURN_TRUE;
}
-/* Return the innermost lexical block containing the specified pc value,
- or 0 if there is none. */
-PyObject *
-gdbpy_block_for_pc (PyObject *self, PyObject *args)
-{
- gdb_py_ulongest pc;
- const struct block *block = NULL;
- struct compunit_symtab *cust = NULL;
-
- if (!PyArg_ParseTuple (args, GDB_PY_LLU_ARG, &pc))
- return NULL;
-
- TRY
- {
- cust = find_pc_compunit_symtab (pc);
-
- if (cust != NULL && COMPUNIT_OBJFILE (cust) != NULL)
- block = block_for_pc (pc);
- }
- CATCH (except, RETURN_MASK_ALL)
- {
- GDB_PY_HANDLE_EXCEPTION (except);
- }
- END_CATCH
-
- if (cust == NULL || COMPUNIT_OBJFILE (cust) == NULL)
- {
- PyErr_SetString (PyExc_RuntimeError,
- _("Cannot locate object file for block."));
- return NULL;
- }
-
- if (block)
- return block_to_block_object (block, COMPUNIT_OBJFILE (cust));
-
- Py_RETURN_NONE;
-}
-
/* This function is called when an objfile is about to be freed.
Invalidate the block as further actions on the block would result
in bad data. All access to obj->symbol should be gated by