[lldb-dev] problems with async mode in lldb-python script

Hikaru Gosun hgosun at gmail.com
Tue Mar 18 03:25:36 PDT 2014


Oops, thanks Greg!

Also it seems that I was not setting up the listener in a proper way, I
needed to do debugger.GetListener() instead of my
lldb.SBListener("event_listener")
which I copy&pasted from somewhere else :(

Working smoothly now. Thanks a lot,
HG


On Mon, Mar 17, 2014 at 6:14 PM, Greg Clayton <gclayton at apple.com> wrote:

> Yes, you aren't checking if the process state. See the python example in
> the SVN repository:
>
> svn cat
> http://llvm.org/svn/llvm-project/lldb/trunk/examples/python/process_events.py
>
> It does the process events correctly and should serve as a great starting
> point for you.
>
>
> On Mar 17, 2014, at 9:29 AM, Hikaru Gosun <hgosun at gmail.com> wrote:
>
> > Hi,
> >
> > I have a small script to debug a program in OSX that looks more or less
> like this:
> >
> > debugger = lldb.SBDebugger.Create()
> > target = debugger.CreateTargetWithFileAndArch(exe,
> lldb.LLDB_ARCH_DEFAULT_64BIT)
> > launch_info = lldb.SBLaunchInfo(args)
> > launch_info.SetLaunchFlags(lldb.eLaunchFlagNone)
> > error = lldb.SBError()
> > process = target.Launch(launch_info, error)
> > if not error.Success():
> >     print args, str(error)
> >     return
> >
> > listener = lldb.SBListener("event_listener")
> > process.GetBroadcaster().AddListener(listener,
> lldb.SBProcess.eBroadcastBitStateChanged)
> > done = 0
> > while not done:
> >     event = lldb.SBEvent()
> >     if listener.WaitForEvent(10, event):
> >       state = lldb.SBProcess.GetStateFromEvent(event)
> >       print state
> >       for thread in process:
> >         print thread, thread.GetFrameAtIndex(0)
> >       process.Continue()
> >     else:
> >       done = 1
> >
> > My intention is to debug the target with some kind of timeout, that's
> why I'm trying to use the async mode and use the timeout in WaitForEvent().
> The problem that I'm facing is that once WaitForEvent() succeeds, there's
> no way I can get access to the thread information (for example to get frame
> info for each thread). This is the output from the script:
> >
> > 5
> > SBThread: tid = 0x2b9672 No value
> > SBThread: tid = 0x2b9686 No value
> > SBThread: tid = 0x2b9687 No value
> > SBThread: tid = 0x2b9689 No value
> > SBThread: tid = 0x2b968a No value
> > SBThread: tid = 0x2b96be No value
> > SBThread: tid = 0x2b96bf No value
> > SBThread: tid = 0x2b96c0 No value
> >
> > This is for the lldb version that comes with XCode (lldb-300.2.53)
> >
> > Any ideas? Is there anything wrong with my approach?
> >
> > Thanks,
> > HG
> > _______________________________________________
> > lldb-dev mailing list
> > lldb-dev at cs.uiuc.edu
> > http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-dev/attachments/20140318/27ba40e7/attachment.html>


More information about the lldb-dev mailing list