diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 2211d62152..77bae9b6cb 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2013-02-28 Tom Tromey + + * py-block.c (gdbpy_block_for_pc): Call block_for_pc inside + TRY_CATCH. + 2013-02-28 Tom Tromey * objfiles.h (ALL_PSPACE_OBJFILES): Remove trailing backlash. diff --git a/gdb/python/py-block.c b/gdb/python/py-block.c index 708b6a8fee..f0b8322270 100644 --- a/gdb/python/py-block.c +++ b/gdb/python/py-block.c @@ -370,7 +370,7 @@ PyObject * gdbpy_block_for_pc (PyObject *self, PyObject *args) { gdb_py_ulongest pc; - struct block *block; + struct block *block = NULL; struct obj_section *section = NULL; struct symtab *symtab = NULL; volatile struct gdb_exception except; @@ -382,6 +382,9 @@ gdbpy_block_for_pc (PyObject *self, PyObject *args) { section = find_pc_mapped_section (pc); symtab = find_pc_sect_symtab (pc, section); + + if (symtab != NULL && symtab->objfile != NULL) + block = block_for_pc (pc); } GDB_PY_HANDLE_EXCEPTION (except); @@ -392,7 +395,6 @@ gdbpy_block_for_pc (PyObject *self, PyObject *args) return NULL; } - block = block_for_pc (pc); if (block) return block_to_block_object (block, symtab->objfile);