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
[EMAIL PROTECTED]

_______________________________________________
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to