Programowanie w systemie UNIX/gdb: Różnice pomiędzy wersjami

Usunięta treść Dodana treść
Linia 72:
 
=Znajdowanie źródła problemu=
 
==Przykład==
 
Mamy prosty program :<ref>[http://unix.stackexchange.com/questions/63691/linux-gcc-compiler-options ]</ref>
 
int main() { int x = 1/0; }
 
kompilujemy standardowo :
 
gcc t.c
 
wynik :
t.c: In function ‘main’:
t.c:3:14: warning: division by zero [-Wdiv-by-zero]
int x = 1/0;
^
uruchamiamy program pod gdb :
 
gdb -q ./a.out
Reading symbols from /home/a/cn/gdb/1/a.out...(no debugging symbols found)...done.
(gdb) run
Starting program: /home/a/cn/gdb/1/./a.out
Program received signal SIGFPE, Arithmetic exception.
0x00000000004004fc in main ()
(gdb) quit
A debugging session is active.
Inferior 1 [process 5477] will be killed.
 
Quit anyway? (y or n) y
 
Teraz kompilujemy z opcją g :
 
gcc -g t.c
 
t.c: In function ‘main’:
t.c:3:14: warning: division by zero [-Wdiv-by-zero]
int x = 1/0;
 
i uruchamiamy pod gdb : ^
 
gdb -q ./a.out
 
<pre>
Reading symbols from /home/a/cn/gdb/1/a.out...done.
(gdb) run
Starting program: /home/a/cn/gdb/1/./a.out
 
Program received signal SIGFPE, Arithmetic exception.
0x00000000004004fc in main () at t.c:3
3 int x = 1/0;
(gdb) quit
A debugging session is active.
 
Inferior 1 [process 5488] will be killed.
 
Quit anyway? (y or n) y
</pre>
 
Otrzymujemy więcej informacji
 
 
==Przerwania==