<p dir="ltr">Thread states are broken across all platforms except maybe FreeBSD</p>
<div class="gmail_quote">On Jun 5, 2015 3:06 PM, "Pavel Labath" <<a href="mailto:labath@google.com">labath@google.com</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<br>
<br>
thanks for the feedback. We are tracking this problem, and we<br>
currently have some tests XFAILed because of this (I don't think the<br>
issue is linux-specific). As a workaround for now, I think you can<br>
assume all threads are stopped if process state is eStateStopped.<br>
<br>
cheers,<br>
pl<br>
<br>
<br>
On 5 June 2015 at 14:43, Eugene Birukov <<a href="mailto:eugenebi@hotmail.com">eugenebi@hotmail.com</a>> wrote:<br>
> OOPS, on server I tried wrong class, that's why the method is not here.<br>
> Still, client inspects local m_state to make the call, and it is "unloaded"<br>
> in cases I inspected.<br>
><br>
> ________________________________<br>
> From: <a href="mailto:eugenebi@hotmail.com">eugenebi@hotmail.com</a><br>
> To: <a href="mailto:lldb-dev@cs.uiuc.edu">lldb-dev@cs.uiuc.edu</a><br>
> Date: Fri, 5 Jun 2015 14:28:22 -0700<br>
> Subject: [lldb-dev] SBThread::IsStopped() always returns false on Linux<br>
><br>
><br>
> Hi,<br>
><br>
> I am running lldb-4.7 that I built from sources on Linux Ubuntu 14.04.<br>
><br>
> I am using C++ API to debug my program. The program runs into different<br>
> events: breakpoints I set, signals. But all threads always returnIsStopped()<br>
> as false in any program state. I traced this call and it seems that the<br>
> thread state is eStateUnloaded. The only place I found that changes thread<br>
> state in Thread.cpp is this method:<br>
><br>
> void<br>
> Thread::SetState(StateType state)<br>
> {<br>
>     Mutex::Locker locker(m_state_mutex);<br>
>     m_state = state;<br>
> }<br>
><br>
><br>
> So, I put breakpoint there and it is never hit. I tried to put similar<br>
> breakpoint in lldb-server, but it seems that the method is not present here:<br>
><br>
> (gdb) b lldb_private::Target::SetS<br>
> SetSectionLoadAddress(std::shared_ptr<lldb_private::Section> const&,<br>
> unsigned long, bool)<br>
> SetSectionUnloaded(std::shared_ptr<lldb_private::Section> const&)<br>
> SetSectionUnloaded(std::shared_ptr<lldb_private::Section> const&, unsigned<br>
> long)<br>
> SetStopHookActiveStateByID(unsigned long, bool)<br>
> (gdb) b lldb_private::Target::SetState<br>
> Function "lldb_private::Target::SetState" not defined.<br>
> Make breakpoint pending on future shared library load? (y or [n])<br>
><br>
><br>
> So far, this seems broken to me.<br>
><br>
> Thanks,<br>
> Eugene<br>
><br>
> _______________________________________________ lldb-dev mailing list<br>
> <a href="mailto:lldb-dev@cs.uiuc.edu">lldb-dev@cs.uiuc.edu</a> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev</a><br>
><br>
> _______________________________________________<br>
> lldb-dev mailing list<br>
> <a href="mailto:lldb-dev@cs.uiuc.edu">lldb-dev@cs.uiuc.edu</a><br>
> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev</a><br>
><br>
_______________________________________________<br>
lldb-dev mailing list<br>
<a href="mailto:lldb-dev@cs.uiuc.edu">lldb-dev@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev</a><br>
</blockquote></div>