[lldb-dev] Process spawning and shutdown
Zachary Turner
zturner at google.com
Tue Sep 16 12:26:54 PDT 2014
Yea, I saw that as well. For now, the abstraction I'm creating deals only
with local processes. However, it has an interface that would in theory
allow a RemoteProcess to derive from it, so that local and remote processes
could be managed transparently.
On Tue, Sep 16, 2014 at 12:07 PM, Todd Fiala <tfiala at google.com> wrote:
> Don't forget we also have launching via Platform classes, which can end up
> kicking off a gdb-remote request to a lldb-platform or gdb-remote stub
> (llgs/debugserver).
>
> Also, ProcessGDBRemote is capable of kicking those off if it's using
> gdb-remote locally.
>
> So, if nothing else, there's the concept of a "launch via another
> mechanism."
>
> On Tue, Sep 16, 2014 at 11:55 AM, Zachary Turner <zturner at google.com>
> wrote:
>
>> The last major piece of the Host layer I'd like to address is process
>> launching and cleanup. From looking over the code it seems we have the
>> following different ways to launch a process:
>>
>> MacOSX:
>> * Applescript
>> * XPC
>> * posix_spawn
>>
>> Other posix variants:
>> * posix_spawn
>>
>> Windows:
>> * Native windows launcher
>>
>>
>> Among these, there are a couple of different ways to reap processes on
>> exit and/or "join" on them. These are:
>>
>> MacOSX:
>> * Applescript [ No process reaping or monitoring occurs. ]
>> * XPC [ Uses MacOSX-specific dispatch library for
>> monitoring ]
>> * posix_spawn [ Uses MacOSX-specific dispatch library for monitoring ]
>>
>> Other posix variants:
>> * posix_spawn [ Launches a background thread to monitor for process
>> exit, join on the thread to join on the process ]
>>
>> Windows:
>> * Native windows launcher [ WaitForSingleObject ]
>>
>> A few questions:
>>
>> 1) Is Join() on a process a useful operation that people would be
>> interested in seeing implemented for all platforms?
>>
>> 2) On Linux at least, if you don't waitpid() on a process you'll end up
>> with zombies. It seems this is true on MacOSX as well, because I see
>> waitpid() in StartMonitoringChildProcess. Is this not true for the
>> Applescript launcher? Why doesn't the Applescript launching code path call
>> StartMonitoringChildProcess() anywhere?
>>
>> 3) Speaking of the Applescript launcher, what is it and what is it used
>> for?
>>
>>
>> I'll probably have more questions as I wrap my head around this a little
>> more. Thanks
>>
>> _______________________________________________
>> lldb-dev mailing list
>> lldb-dev at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev
>>
>>
>
>
> --
> Todd Fiala | Software Engineer | tfiala at google.com | 650-943-3180
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-dev/attachments/20140916/06c64386/attachment.html>
More information about the lldb-dev
mailing list