Skip to content

Commit 811937a

Browse files
committed
Do not use Frame.level as not available in older GDB versions
1 parent 13b37ab commit 811937a

File tree

1 file changed

+11
-2
lines changed

1 file changed

+11
-2
lines changed

.gdbinit

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1647,6 +1647,14 @@ Optionally list the frame arguments and locals too.'''
16471647
# skip if the current thread is not stopped
16481648
if not gdb.selected_thread().is_stopped():
16491649
return []
1650+
# find the selected frame level (XXX Frame.level() is a recent addition)
1651+
start_level = 0
1652+
frame = gdb.newest_frame()
1653+
while frame:
1654+
if frame == gdb.selected_frame():
1655+
break
1656+
frame = frame.older()
1657+
start_level += 1
16501658
# gather the frames
16511659
more = False
16521660
frames = [gdb.selected_frame()]
@@ -1665,12 +1673,14 @@ Optionally list the frame arguments and locals too.'''
16651673
frame = frames[0].newer()
16661674
if frame:
16671675
frames.insert(0, frame)
1676+
start_level -= 1
16681677
else:
16691678
break
16701679
else:
16711680
frame = frames[0].newer()
16721681
if frame:
16731682
frames.insert(0, frame)
1683+
start_level -= 1
16741684
else:
16751685
frame = frames[-1].older()
16761686
if frame:
@@ -1681,8 +1691,7 @@ Optionally list the frame arguments and locals too.'''
16811691
going_down = not going_down
16821692
# format the output
16831693
lines = []
1684-
for frame in frames:
1685-
number = frame.level()
1694+
for number, frame in enumerate(frames, start=start_level):
16861695
selected = frame == gdb.selected_frame()
16871696
lines.extend(self.get_frame_lines(number, frame, selected))
16881697
# add the placeholder

0 commit comments

Comments
 (0)