diff options
| author | jimingham <jingham@apple.com> | 2024-07-03 10:45:20 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-07-03 10:45:20 -0700 |
| commit | 845dee36ba4161df153ba05009cea615e20eda5a (patch) | |
| tree | d222daf105b1ddb3196be682a786ef3be6da716e /lldb/test/API/python_api/thread/main.cpp | |
| parent | 77d131eddb6ca9060c844fae9cb78779fa70c8f0 (diff) | |
SBThread::StepInstruction shouldn't discard other plans (#97493)
This was just a typo, none of the external execution control functions
should discard other plans. In particular, it means if you stop in a
hand-called function and step an instruction, the function call thread
plan gets unshipped, popping all the function call frames.
I also added a test that asserts the correct behavior. I tested all the
stepping operations even though only StepInstruction was wrong.
Diffstat (limited to 'lldb/test/API/python_api/thread/main.cpp')
| -rw-r--r-- | lldb/test/API/python_api/thread/main.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/lldb/test/API/python_api/thread/main.cpp b/lldb/test/API/python_api/thread/main.cpp index dde740a1b6bf..d4b0ad2372c3 100644 --- a/lldb/test/API/python_api/thread/main.cpp +++ b/lldb/test/API/python_api/thread/main.cpp @@ -5,8 +5,18 @@ char my_char = 'u'; int my_int = 0; +void +call_me(bool should_spin) { + int counter = 0; + if (should_spin) { + while (1) + counter++; // Set a breakpoint in call_me + } +} + int main (int argc, char const *argv[]) { + call_me(false); for (int i = 0; i < 3; ++i) { printf("my_char='%c'\n", my_char); ++my_char; |
