Woops, my bad. I was hoping that "resume" was to "StepInstruction",
which does have an immediate action, but i did not check what it
actually does.

In this case, we could probably just use "StepOut" for the test case,
as it should have the same effect - advance the thread until it
reaches the next breakpoint.

On 31 May 2017 at 19:22, Jim Ingham <jing...@apple.com> wrote:
> SBThread::Resume instructs lldb to set the resume state on a thread to 
> "eStateRunning", meaning that means the next time you continue the process, 
> that thread will get a chance to run.  It has no effect on the StopReason for 
> the thread (it doesn't even start it running except maybe in the not well 
> supported "thread-centric" debugging mode.)
>
> In the normal case, nothing is going to happen till the process is resumed 
> (with SBProcess::Continue).  At that point, the thread you just allowed to 
> run might or might not actually get scheduled to run.  And if it does 
> actually run, it might or might not have stopped for an interesting reason by 
> the time the process stopped.  So getting eStopReasonNone in this case is not 
> at all unexpected.  If NONE of the threads in the program had an interesting 
> stop reason, that would be weird, and worth looking at.  But that you might 
> have to wait around for a while for any particular thread to stop for some 
> reason is not unexpected.
>
> Jim
>
>
>
>> On May 31, 2017, at 3:44 AM, Pavel Labath via Phabricator 
>> <revi...@reviews.llvm.org> wrote:
>>
>> labath added a comment.
>>
>> In https://reviews.llvm.org/D33426#766525, @bgianfo wrote:
>>
>>> Address Pavel and Greg's feedback on Diff 100365.
>>>
>>> Pavel: I took your suggestions to make the test case more readable,
>>> I really appreciate the guidance. I did have to tweak some of the
>>> functionality to make the test case pass reliably, as there were
>>> still some races possible. I also saw that SBThread.Resume() seems
>>> to occasionally result in a StopReason of eStopReasonNon. So I worked
>>> around that by only including threads int expected output that the Resume
>>> resulted in making it to our breakpoint. I have verified the test is
>>> consistently passes by executing it on repeat 100 times,
>>
>>
>> Thanks. The fact that we are not able to rely on the operation of Resume in 
>> this case sounds like a bug. Obviously we can't condition the acceptance of 
>> this patch by fixing that issue, but we should at least track it. Can you 
>> create a bug on bugs.llvm.org, and reference it in your workaround. BTW, 
>> what's the platform you are testing this on?
>>
>>
>> https://reviews.llvm.org/D33426
>>
>>
>>
>
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to