[Lldb-commits] [PATCH] D29144: LLDB: fix for TestCallThatThrows.py test fail
Jim Ingham via Phabricator via lldb-commits
lldb-commits at lists.llvm.org
Thu Jan 26 10:30:49 PST 2017
jingham added a comment.
Something else is going on then. The run to break point plan is just the subsidiary plan that implements the call function plan. The way the function call plan works is that finds some code which we know isn't going to get executed (_start or something like it), writes a stack frame that returns there, pushes the call frame for the function under that, pushes a run to _start thread plan and continues. Then when the function call is done, we hit the breakpoint we've set at _start. Before we report that event (and get back to the code in RunThreadPlan) the thread plan machinery should decide that the run to address plan is successfully completed, it will get popped, then the call function plan will resume control and notice it also is done. Since the call function plan is a "master plan" it will get popped but then the completion will get reported directly rather than continuing to unwind the plan stack. When you go to pick the plan to report for the stop it should be the top of the completed plan stack, the "thread plan to call function". Why in this particular case is the bottom of the completed stack getting handed out? That's what seems wrong.
More information about the lldb-commits