summaryrefslogtreecommitdiff
path: root/lldb/test/API/python_api/thread/main.cpp
diff options
context:
space:
mode:
authorjimingham <jingham@apple.com>2024-07-03 10:45:20 -0700
committerGitHub <noreply@github.com>2024-07-03 10:45:20 -0700
commit845dee36ba4161df153ba05009cea615e20eda5a (patch)
treed222daf105b1ddb3196be682a786ef3be6da716e /lldb/test/API/python_api/thread/main.cpp
parent77d131eddb6ca9060c844fae9cb78779fa70c8f0 (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.cpp10
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;