Re: collecting data from a coring process

Samuel Bronson <[email protected]>
Newsgroups gmane.comp.gdb.devel
Message-ID <CAJYzjmf0a2Dd8XbOQaO3937Bcab1AW9gVp=r3mKSgUq_27G8ow@mail.gmail.com>
On Mon, Sep 5, 2016 at 7:19 PM, Paul Marquess
<[email protected]> wrote:
> From: Samuel Bronson [mailto:[email protected]]
>
>> On Mon, Sep 5, 2016 at 7:09 AM, Paul Marquess <[email protected]> wrote:
>> > From: Dmitry Samersoff [mailto:[email protected]]
>> >
>> >> Paul,
>> >>
>> >> >> 1) Why not dump the information that you are looking for into a
>> >> >> file in the process signal handler ?
>> >> >
>> >> > Would love to, but I have no idea what state the process is in once
>> >> > the SEGV has been triggered.
>> [...]
>> > I know we've had problems with signal handlers causing problems, thus my preference to find a way to have the signal handler code do as little as possible and get all the data collection handled at arm's length by gdb.
>>
>> You could just spawn (and wait for) your GDB-launching script from the signal handler; then,
>> the process & stack will still be around for GDB.  I think this is even legal!
>
> That's one of the approaches I'm thinking of. I need to check if the fork/exec & wait use malloc.

I think it should suffice for them to be "async-signal-safe "?  It
looks like signal(7) documents which functions several versions of
POSIX require to be async-signal-safe, and it looks like there are two
versions of exec*() on there as well as fork() and wait().  Which is
basically what I meant by "I think this is even legal!" :-).
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.