[lldb-dev] What does this piece of hijack code do?

Greg Clayton gclayton at apple.com
Tue Aug 19 15:16:14 PDT 2014


It will get all process events delivered to it (like the initial eStateStopped event) to make sure the attach succeeded. The it will likely re-post the event after unhijacking the process events so LLDB knows about it.

Attach either succeeds or fails immediately (when attaching to a pid or name), or waits when attaching to the next process by name. This can be interrupted by CTRL+C and there is some logic that deals with that.

Greg

> On Aug 19, 2014, at 3:04 PM, Todd Fiala <tfiala at google.com> wrote:
> 
> Hey guys,
> 
> In the local MacOSX debugging case when PlatformDarwin::Attach () is eventually called, what is this piece of code really doing?
> 
>                 ListenerSP listener_sp (new Listener("lldb.PlatformDarwin.attach.hijack"));
>                 attach_info.SetHijackListener(listener_sp);
>                 process_sp->HijackProcessEvents(listener_sp.get());
> 
> What will be that hijacker's responsibility?
> 
> Thanks!
> -- 
> Todd Fiala |	 Software Engineer |	 tfiala at google.com |	 650-943-3180
> 




More information about the lldb-dev mailing list