Wenn meine Anwendung mit einem Segmentierungsfehler abstürzt, möchte ich einen Core Dump vom System bekommen. Ich tue, dass vor der Hand durch die KonfigurationLinux: Behandlung eines Segmentierungsfehlers und Erhalt eines Core Dumps
ulimit -c unlimited
Ich würde auch einen Hinweis in meinen Anwendungsprotokoll haben mag, dass ein Zugriffsfehler aufgetreten ist. Ich mache das mit sigaction()
. Wenn ich das jedoch tue, erreicht das Signal seine Standardbehandlung nicht und ein Core-Dump wird nicht gespeichert.
Wie kann ich sowohl den Systemkern als auch eine Protokollzeile von meinem eigenen Signalhandler gleichzeitig ausgeben lassen?
Können Sie das näher erläutern? – Short
Ich fürchte, ich kann nicht. – shoosh
Dies funktioniert nicht mit der Version von Redhat 6, auf der ich getestet habe, und verursacht eine regressive Schleife, bei der der Handler nicht zurückgesetzt wird. Es funktioniert, wenn Sie den alten Handler beim Aufruf von sigaction speichern und ihn explizit im SIGSEGV-Handler zurücksetzen. – phenompbg