avoid python exception in FrameDecorator.py
This fixes a bug in FrameDecorator.py. FrameVars seems to assume that Frame.block can return None if there is no block. However, it actually throws an exception. I saw this bug while developing a frame filter, but unfortunately I don't know how to reproduce it. It seems to me that the SAL tests in _is_limited_frame should exclude the bad cases; and in my attempts to write a test they do. Nevertheless I think the fix is reasonably obvious and ought to go in. 2014-01-23 Tom Tromey <tromey@redhat.com> PR python/16485: * python/lib/gdb/FrameDecorator.py: (FrameVars.fetch_frame_args): Handle exception from frame.block. (FrameVars.fetch_frame_locals): Likewise.
This commit is contained in:
parent
0740f8d82d
commit
83b645b833
2 changed files with 17 additions and 2 deletions
|
@ -258,7 +258,10 @@ class FrameVars(object):
|
|||
are no frame local variables, return an empty list."""
|
||||
lvars = []
|
||||
|
||||
block = self.frame.block()
|
||||
try:
|
||||
block = self.frame.block()
|
||||
except RuntimeError:
|
||||
block = None
|
||||
|
||||
while block != None:
|
||||
if block.is_global or block.is_static:
|
||||
|
@ -279,7 +282,12 @@ class FrameVars(object):
|
|||
there are no frame argument variables, return an empty list."""
|
||||
|
||||
args = []
|
||||
block = self.frame.block()
|
||||
|
||||
try:
|
||||
block = self.frame.block()
|
||||
except RuntimeError:
|
||||
block = None
|
||||
|
||||
while block != None:
|
||||
if block.function != None:
|
||||
break
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue