Commit fa0b6a6
committed
[lldb] Consider "hidden" frames in ThreadPlanShouldStopHere
Patch [1] introduced the notion of "hidden" frames, which are recognized
by language plugins and can be hidden in backtraces. They also affect
stepping out: when stepping out of a frame, if its parent frame is
"hidden", then the debugger steps out to the parent's parent.
However, this is problematic when stepping out is done as part of a
larger plan. For example, when stepping through, the debugger is often
in some frame A, then pushes some frame B, and decides to step out of B
and back to A. If A is a hidden frame, LLDB currenly steps out past it,
which is not what the step through plan intended.
To address this issue, we create a new flag for the ShouldStopHere base
class to allow for stepping past hidden frames. This flag is now the
default for stepping out. Furthermore,
`ThreadPlanShouldStopHere::DefaultStepFromHereCallback` now passes its
own set of flags to the constructor of ThreadPlanStepOut.
One potentially controversial choice: all StepOut plans created through
`ThreadPlanShouldStopHere::DefaultStepFromHereCallback` will pass on
their set of flags to ThreadPlanStepOut, which will disable the behavior
of stepping past hidden frames.
[1]: #1045231 parent 83658dd commit fa0b6a6
File tree
6 files changed
+20
-10
lines changed- lldb
- include/lldb/Target
- source/Target
6 files changed
+20
-10
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
942 | 942 | | |
943 | 943 | | |
944 | 944 | | |
945 | | - | |
| 945 | + | |
| 946 | + | |
946 | 947 | | |
947 | 948 | | |
948 | 949 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
60 | 60 | | |
61 | 61 | | |
62 | 62 | | |
63 | | - | |
| 63 | + | |
| 64 | + | |
64 | 65 | | |
65 | 66 | | |
66 | 67 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
22 | 22 | | |
23 | 23 | | |
24 | 24 | | |
25 | | - | |
| 25 | + | |
| 26 | + | |
26 | 27 | | |
27 | 28 | | |
28 | 29 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1356 | 1356 | | |
1357 | 1357 | | |
1358 | 1358 | | |
1359 | | - | |
| 1359 | + | |
| 1360 | + | |
1360 | 1361 | | |
1361 | 1362 | | |
1362 | 1363 | | |
1363 | 1364 | | |
1364 | 1365 | | |
1365 | | - | |
| 1366 | + | |
1366 | 1367 | | |
1367 | 1368 | | |
1368 | 1369 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
177 | 177 | | |
178 | 178 | | |
179 | 179 | | |
180 | | - | |
| 180 | + | |
181 | 181 | | |
182 | 182 | | |
183 | 183 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
29 | 29 | | |
30 | 30 | | |
31 | 31 | | |
32 | | - | |
| 32 | + | |
| 33 | + | |
33 | 34 | | |
34 | 35 | | |
35 | 36 | | |
36 | 37 | | |
37 | 38 | | |
38 | 39 | | |
39 | | - | |
| 40 | + | |
40 | 41 | | |
41 | 42 | | |
42 | 43 | | |
| |||
45 | 46 | | |
46 | 47 | | |
47 | 48 | | |
48 | | - | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
49 | 53 | | |
50 | 54 | | |
51 | 55 | | |
| |||
58 | 62 | | |
59 | 63 | | |
60 | 64 | | |
61 | | - | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
62 | 68 | | |
63 | 69 | | |
64 | 70 | | |
| |||
0 commit comments