[lldb-dev] Platform::DebugProcess vs Target::CreateProcess + Process->Launch

Greg Clayton gclayton at apple.com
Tue Dec 10 13:03:35 PST 2013


>> 
>> 
>>> When the host launching a process it will fill the new process ID. Also be careful to be sure that you call ProcessLaunchInfo::SetMonitorProcessCallback(...) prior to launching as when the host launches the process, if there isn't a callback in the ProcessLaunchInfo, it will use its own version that will reap the process in the host layer...
>> 
>> Using the default Host reaper should not be an issue as it defaults to calling Process::SetProcessExitStatus() which is what we want when debugging a process isn't it ?
>> 
> 
> And now that I think about it, this is probably not what we want when doing ptrace based debugging, as the waitpid in the reaper thread will conflict with the ptrace debugging thread.

It works just fine for MacOSX, don't change anything for darwin. MacOSX isn't a standard ptrace debugging target, it is quite quite different. ptrace is used to attach, detach, and a few other important things like changing the signal that a thread continues with, but other than that, the Mach API is used for everything else (read/write regs, read/write memory, suspend/resume, etc).




More information about the lldb-dev mailing list