* python/py-frame.c (frapy_block): Use get_frame_block.
This commit is contained in:
parent
12505806d0
commit
57126e4a45
2 changed files with 18 additions and 7 deletions
|
@ -1,3 +1,7 @@
|
||||||
|
2011-01-06 Tom Tromey <tromey@redhat.com>
|
||||||
|
|
||||||
|
* python/py-frame.c (frapy_block): Use get_frame_block.
|
||||||
|
|
||||||
2011-01-06 Joel Brobecker <brobecker@adacore.com>
|
2011-01-06 Joel Brobecker <brobecker@adacore.com>
|
||||||
|
|
||||||
Do not stop on SIGPRIO signals by default
|
Do not stop on SIGPRIO signals by default
|
||||||
|
|
|
@ -211,20 +211,22 @@ static PyObject *
|
||||||
frapy_block (PyObject *self, PyObject *args)
|
frapy_block (PyObject *self, PyObject *args)
|
||||||
{
|
{
|
||||||
struct frame_info *frame;
|
struct frame_info *frame;
|
||||||
struct block *block = NULL;
|
struct block *block = NULL, *fn_block;
|
||||||
volatile struct gdb_exception except;
|
volatile struct gdb_exception except;
|
||||||
struct symtab_and_line sal;
|
|
||||||
|
|
||||||
TRY_CATCH (except, RETURN_MASK_ALL)
|
TRY_CATCH (except, RETURN_MASK_ALL)
|
||||||
{
|
{
|
||||||
FRAPY_REQUIRE_VALID ((frame_object *) self, frame);
|
FRAPY_REQUIRE_VALID ((frame_object *) self, frame);
|
||||||
|
block = get_frame_block (frame, NULL);
|
||||||
find_frame_sal (frame, &sal);
|
|
||||||
block = block_for_pc (get_frame_address_in_block (frame));
|
|
||||||
}
|
}
|
||||||
GDB_PY_HANDLE_EXCEPTION (except);
|
GDB_PY_HANDLE_EXCEPTION (except);
|
||||||
|
|
||||||
if (!sal.symtab || !sal.symtab->objfile)
|
for (fn_block = block;
|
||||||
|
fn_block != NULL && BLOCK_FUNCTION (fn_block) == NULL;
|
||||||
|
fn_block = BLOCK_SUPERBLOCK (fn_block))
|
||||||
|
;
|
||||||
|
|
||||||
|
if (block == NULL || fn_block == NULL || BLOCK_FUNCTION (fn_block) == NULL)
|
||||||
{
|
{
|
||||||
PyErr_SetString (PyExc_RuntimeError,
|
PyErr_SetString (PyExc_RuntimeError,
|
||||||
_("Cannot locate object file for block."));
|
_("Cannot locate object file for block."));
|
||||||
|
@ -232,7 +234,12 @@ frapy_block (PyObject *self, PyObject *args)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (block)
|
if (block)
|
||||||
return block_to_block_object (block, sal.symtab->objfile);
|
{
|
||||||
|
struct symtab *symt;
|
||||||
|
|
||||||
|
symt = SYMBOL_SYMTAB (BLOCK_FUNCTION (fn_block));
|
||||||
|
return block_to_block_object (block, symt->objfile);
|
||||||
|
}
|
||||||
|
|
||||||
Py_RETURN_NONE;
|
Py_RETURN_NONE;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue