core dump howto

Hallo,

ich wollte mich mal mit core dump und "offline" debuggen beschäftigen...

ich habe mal versucht ein ganz dummes C beispiel zu machen...

Dietrich Pescoller wrote:

#include <stdio.h>

int main(void)
{
int *fd=0;
*fd=340;
printf("done\n");
}

Natürlich generiert dieser code in *fd=340; ein segmentation fault, aber
kein core dump wird generiert... ich habe mit gcc -dH compiliert.

Hallo Diti,

wahrscheinlich sind core dumps nicht aktiviert. Setze das limit fuer Core
dumps auf unlimited:
ulimit -c unlimited
und dann ruf das Programm auf.

HTH,
Thomas

Hallo Thomas,
danke des wars... :slight_smile:

Frage geht das auch für kernel module?

Dietrich Pescoller wrote:

ulimit -c unlimited

Hallo Thomas,
danke des wars... :slight_smile:

Frage geht das auch für kernel module?

Hallo Diti,

ich glaube nicht. Dafuer sind die Kernel oops da, wenn ich mich nicht
irre. Das erste un letzte mal dass ich Kernel Module programmiert habe war
fuer meine Diplomarbeit, und das war fuer uClinux in Kernelversion 2.0...
Ich denke es hat sich einiges geaendert in der Zwischenzeit. Andere in der
Liste haben sicherlich aktuellere Informationen. :slight_smile:

Ah, und wenn du core dumps untersuchst, dann solltest du mit -g
kompilieren um die Symbole im Output einkompiliert zu haben.

Cheers,
Thomas

Dietrich Pescoller wrote:

Frage geht das auch für kernel module?

sieh dir mal kexec/kdump an. Damit kriegst du ein speicher-image nach
dem crash das du dann mit gdb debuggen kannst.

peter

danke an alle

diti