Programowanie w systemie UNIX/gdb: Różnice pomiędzy wersjami
Usunięta treść Dodana treść
m →Przykładowa sesja: bold |
→Znajdowanie źródła problemu: przerwania |
||
Linia 72:
=Znajdowanie źródła problemu=
==Przerwania==
Uruchamiamy sesję :
gdb a.out
Jeśli podejrzewamy w którym miejscu w czasie wykonywania programu powstaje błąd, to możemy ręcznie przerwać wykonywanie przed wykonaniem błędnego kodu. Pozwoli to nam na dokładniejszą analizę ( krok po kroku). Przed uruchomieniem programu w czasie sesji debuggera ustanawiamy przerwanie.
Mamy do wyboru przerwanie przed:<ref>[http://cseweb.ucsd.edu/classes/fa09/cse141/tutorial_gcc_gdb.html Tutorial of gcc and gdb by Steven Swanson]</ref>
* linią kodu : break source_filename:line_number ( przykład break c.c:8 )
* funkcją : break source_filename:function_name ( przykład : break m.c:GivePeriod )
* instrukcją : break *PC ( przykład : break *0x1f7b ustanawia przerwanie przed istrukcją main)
Informacja o przerwaniach :
info breakpoint
i przykładowa odpowiedź : :
<pre>
Num Type Disp Enb Address What
1 breakpoint keep y 0x0000000000400b3b in GivePeriod at m.c:132
breakpoint already hit 1 time
</pre>
Usuwanie przerwań :
clear m.c:8
=Źródła=
|