File tree Expand file tree Collapse file tree 1 file changed +11
-2
lines changed Expand file tree Collapse file tree 1 file changed +11
-2
lines changed Original file line number Diff line number Diff line change @@ -1647,6 +1647,14 @@ Optionally list the frame arguments and locals too.'''
1647
1647
# skip if the current thread is not stopped
1648
1648
if not gdb .selected_thread ().is_stopped ():
1649
1649
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
1650
1658
# gather the frames
1651
1659
more = False
1652
1660
frames = [gdb .selected_frame ()]
@@ -1665,12 +1673,14 @@ Optionally list the frame arguments and locals too.'''
1665
1673
frame = frames [0 ].newer ()
1666
1674
if frame :
1667
1675
frames .insert (0 , frame )
1676
+ start_level -= 1
1668
1677
else :
1669
1678
break
1670
1679
else :
1671
1680
frame = frames [0 ].newer ()
1672
1681
if frame :
1673
1682
frames .insert (0 , frame )
1683
+ start_level -= 1
1674
1684
else :
1675
1685
frame = frames [- 1 ].older ()
1676
1686
if frame :
@@ -1681,8 +1691,7 @@ Optionally list the frame arguments and locals too.'''
1681
1691
going_down = not going_down
1682
1692
# format the output
1683
1693
lines = []
1684
- for frame in frames :
1685
- number = frame .level ()
1694
+ for number , frame in enumerate (frames , start = start_level ):
1686
1695
selected = frame == gdb .selected_frame ()
1687
1696
lines .extend (self .get_frame_lines (number , frame , selected ))
1688
1697
# add the placeholder
You can’t perform that action at this time.
0 commit comments