[lldb-dev] problems with async mode

Hikaru Gosun hgosun at gmail.com
Fri Mar 14 04:46:04 PDT 2014


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

Any ideas? Is there anything wrong with my approach?

Thanks,
HG
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-dev/attachments/20140314/c26f56af/attachment.html>


More information about the lldb-dev mailing list