Linuxburkarna på jobbet (en del av dem) loggar varje gång en process
kraschar: nåt i stil med "segfault at 0xnnnn rip 0xyyyy" och så pid
och processens namn, i /var/log/messages.
(Googlar man på segfault rip syslog ser man exempel.)
Ganska trevligt när en process plötsligt försvunnit och man undrar
varför.
Hur slår man på det? En kernel-patch? Nåt paket? En sysctl? Jag kör
Debian med en hemmabyggd kärna, och jag får inte såna loggar.
/Jörgen
--
// Jorgen Grahn <grahn@ Oo o. . .
\X/ snipabacken.se> O o .
Den här länken är ganska uttömmande när det gäller processdumpar
för en specifik applikation under olika unixar och -liknande OS,
men den kanske kan vara till någon ledning även när det gäller
din applikation:
http://publib.boulder.ibm.com/httpserv/ihsdiag/coredumps.html
"The application can make a special syscall --
prctl(PR_SET_DUMPABLE, 1) -- which will enable coredumps for that
application. This syscall works only on Linux 2.4 and later kernels.
Important note: There are reports that some 2.4 kernels from some
vendors have the prctl() feature broken, such that a core dump is
not written even when the prctl() call is issued."
Charlie.
Tack! Det hjälpte visserligen inte direkt, men jag fick tummen ur och
började googla lite mer. Det visade sej att jag *har* featuren redan,
via en odokumenterad sysctl:
# cat /proc/sys/debug/exception-trace
1
# zgrep segfault messages*
messages:Sep 22 00:08:39 salix kernel: opera[3660]: segfault at
2f00000071 ip 0000000000415049 sp 00007fff51fa21c0 error 4 in
opera[400000+11bf000]
...
Bara fyra loggar sen i början av augusti, och då har jag ändå suttit
och kodat och testat på burken.
/Jorgen
PS. Oklart för mej om sysctl:en finns på alla arkitekturer. Burken
ovan kör x86_64.