Hi,
 
I am running on Linux Ubuntu 14.04 with lldb-4.7 I built from sources about a 
month ago.
 
My C++ debugger does pretty much the following:
Initializes LLDB, sets it to async modeGets listener from debugger, subscribes 
for process and target events Sets a few breakpointsWaits for event on the 
listenerIf event is a process event If event type is eBroadcastBitSTDOUT or 
eBroadcastBitSTERRcall SBDebugger::HandleProcessEvent() to get it printedelse 
if process state is eStateStoppedscan all the target threads and checks their 
stop reason, registers, etc.call SBProcess::Continue()Loop to 4 
Now, the program behavior varies - so it might be I am doing something wrong...
 
One version of the program always gets stray stopped event in the very 
beginning after reporting several module loads. In this case it has only one 
thread yet and the thread stop reason is eStopReasonNone. when it happens, I 
have to skip calling SBProcess::Continue() - i.e. just ignore this event as if 
the target state was eStateRunning and reissue wait for event. This is a bit 
annoying but detection and workaround are simple.
 
Another version of the program does not subscribe for target events. It often 
works smooth, but once in a while gets stray stopped event and the thread state 
is eStopReasonTrace. I should not call SBProcess::Continue() in this case too. 
Now the problem is that I do turn on tracing sometimes, and if it is genuine 
trace event I have to call continue.
 
Any advice - how to investigate this problem - if it is my bug or something in 
LLDB?
 
Thanks,
Eugene
                                          
_______________________________________________
lldb-dev mailing list
lldb-dev@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev

Reply via email to