Eh les gars, je n'ai vu encore personne faire état de la pile !
Comme dit plus haut, on inclue les symboles de debuggage en compilant avec "-g", on lance gdb ./testwin, on fait run et on attend le segfault.
crashme.c
int main (void)
{
char * ptr =0;
* ptr = '-';
return 0;
}
$ gcc -g crashme.c -o crashme
$ gdb crashme
(gdb) run
Program received signal SIGSEGV, Segmentation fault.
0x08048346 in main () at crashme.c:5
5 * ptr = '-';
Et quand on veut savoir d'où on vient, on explore la pile avec un backtrace :
(gdb) bt
#0 0x08048346 in main () at crashme.c:5
#1 0x40043c57 in __libc_start_main () from /lib/i686/libc.so.6
Après il existe "b" pour placer un breakpoint, "s" (step) pour avancer d'une instruction, "n" (next) pour sortir de la fonction en cours, etc. et surtout "help".
Enfin un conseil : Lâche KDevelop un moment ou l'on va croire que tu es perdu sans Visual Studios. Habitues-toi un moment à la ligne de commande, et reviens-y - si tu y tiens encore - quand tu seras devenu un guru ! :-)
[^] # Et la pile ?
Posté par Obsidian . En réponse au message comment trouver l'origine d'un segmentation fault ?. Évalué à 2.
Comme dit plus haut, on inclue les symboles de debuggage en compilant avec "-g", on lance gdb ./testwin, on fait run et on attend le segfault.
crashme.c
int main (void)
{
char * ptr =0;
* ptr = '-';
return 0;
}
$ gcc -g crashme.c -o crashme
$ gdb crashme
(gdb) run
Program received signal SIGSEGV, Segmentation fault.
0x08048346 in main () at crashme.c:5
5 * ptr = '-';
Et quand on veut savoir d'où on vient, on explore la pile avec un backtrace :
(gdb) bt
#0 0x08048346 in main () at crashme.c:5
#1 0x40043c57 in __libc_start_main () from /lib/i686/libc.so.6
Après il existe "b" pour placer un breakpoint, "s" (step) pour avancer d'une instruction, "n" (next) pour sortir de la fonction en cours, etc. et surtout "help".
Enfin un conseil : Lâche KDevelop un moment ou l'on va croire que tu es perdu sans Visual Studios. Habitues-toi un moment à la ligne de commande, et reviens-y - si tu y tiens encore - quand tu seras devenu un guru ! :-)