A opção
-g permite o uso de informações extras de depuração que o GDB pode usar. Aqui está um exemplo de código C:
int main() {
int x = 1/0;
}
vamos compilar sem a opção -g e ver a saída do gdb:
$ gcc test.c -o test
test.c: In function ‘main’:
test.c:2:11: warning: division by zero [-Wdiv-by-zero]
$ gdb -q ./test
Reading symbols from /home/mariusz/Dokumenty/Projekty/Testy/test...(no debugging symbols found)...done.
(gdb) run
Starting program: /home/mariusz/Dokumenty/Projekty/Testy/test
Program received signal SIGFPE, Arithmetic exception.
0x080483cb in main ()
E agora com a opção -g:
$ gcc -g test.c -o test
test.c: In function ‘main’:
test.c:2:11: warning: division by zero [-Wdiv-by-zero]
$ gdb -q ./test
Reading symbols from /home/mariusz/Dokumenty/Projekty/Testy/test...done.
(gdb) run
Starting program: /home/mariusz/Dokumenty/Projekty/Testy/test
Program received signal SIGFPE, Arithmetic exception.
0x080483cb in main () at test.c:2
2 int x = 1/0;
Como você pode ver, agora há informações sobre a linha com erro.