<div dir="ltr">Jim,<div><br></div><div>Thanks for all of this great info!</div><div><br></div><div>Just two more questions for now ...<br><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Feb 24, 2015 at 2:08 AM,  <span dir="ltr"><<a href="mailto:jingham@apple.com" target="_blank">jingham@apple.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class=""><br>
> On Feb 22, 2015, at 7:42 PM, Bruce Mitchener <<a href="mailto:bruce.mitchener@gmail.com">bruce.mitchener@gmail.com</a>> wrote:<br></span>>       • Is all of this safe against re-entry? What happens if I'm trying X and X gets invoked again (during the thread plan execution)?<br>
<br>
The most straightforward way to do this would be to write something that just drives the event loop a la:<br>
<br>
<a href="http://llvm.org/svn/llvm-project/lldb/trunk/examples/python/process_events.py" target="_blank">http://llvm.org/svn/llvm-project/lldb/trunk/examples/python/process_events.py</a><br>
<br>
Then recursion won't bother you.  The step plans stack, so if you do your "step-out" and before the step out completes you hit the breakpoint again, that's okay, the first step-out plan is still on the plan stack.  Do your "step-out" for the second breakpoint hit, and when that completes, "continue" and the original step-out plan will then get a chance to complete.  And since plans are per thread, doing this on multiple threads won't cause any problems either.<br></blockquote><div><br></div><div>Ahh, I was going to do this from a command inside the LLDB CLI for now... Will that work well?</div><div><br></div><div>Also, will this prevent other threads from running while I have a function trace happening? (The comments in the code about this aren't clear to me.)</div><div><br></div><div> - Bruce</div><div><br></div></div></div></div></div>