Dumping a core from inside of process

Lev Walkin vlm at netli.com
Thu Aug 21 15:28:56 PDT 2003


Artem 'Zazoobr' Ignatjev wrote:
> At Thu, 21.08.2003, 22:05, Lev Walkin wrote:
> 
>>Artem 'Zazoobr' Ignatjev wrote:
>>
>>>Hello, hackers
>>>
>>>I'm writing some program, which dlopens() a lot of shared objects, and
>>>can do nasty things to it's own memory. Some day I decided to trap fatal
>>>memory signals, like SIGILL, SIGBUS and SIGSEGV, and wrote a handler for
>>>these, which swears with bad words into syslog, dlcloses() all that
>>>objects, and quits. 
>>
>>What if a handler dlcloses() something which is already in process of
>>dlclosing() at the time the handler fires?
> 
> No, that's the only place (except normal shutdown sequence) where the
> object can be dlcosed()

What if a SIGSEGV happens inside a normal shutdown sequence?
My point is: it _seems_ that you're trying to do unsafe work while
executing signal handler. This is off track of your main question,
but does indeed suggest that the safe signal programming techniques
aren't honored.

>>>But today I found that it's very useful - to have coredump handy, since
>>>its eases debug a lot. What is the (correct) way to make a coredump of
>>>your own memory (and, it'll be nice to have all that stack frames and
>>>registers written as they were when the signal did occured, not what
>>>they were when we are already in signal handler)
>>
>>man 3 abort
> 
> thanks, I'll take a look


-- 
Lev Walkin
vlm at netli.com



More information about the freebsd-hackers mailing list