6837093807

6837093807



Systemy wbudowane

Przekład sesji debuggera

gdb-test0dmcslabl:~/gdb-test-example$ gdb ./test GNU gdb 6.8-debian

Copyright (C) 2008 Free Software Foundation, Inc.

License GPLv3+: GNU GPL version 3 or later chttp://gnu.org/licenses/gpl.html>

This is free software: you are free to change and redistribute it.

There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details.

This GDB was configured as "x86_64-linux-gnu"... (gdb)

Debueser oczekuje na polecenia od użytkownika. Program zostaje uruchomiony w trybie ciągłym za pomocą polecenia run Irl.

(gdb) r

Starting program: /home/gdb-test/gdb-test-example/test

Program received signal SIGFPE, Arithmetic exception.

0x00000000004006e5 in div (al=100) at main.cpp:7 7    tab[c] = al/c;

(gdb)

Uruchomienie program w trybie ciągłym skutkuje zakończeniem działania z powodu natrafienia na blad krytyczny. Wyświetlona została dodatkowa informacja o lokalizacji instrukcji powodującej błąd - plik main.cpp linia 7. Polecenie list fil umożliwia wyświetlenie kodu źródłowego programu.

(gdb) 1

2

3    int    div(int    al)

4    {

5    int w,c, tab[10]    = (0);

6    for (c = sizeof(tab)/sizeof(tab[0]); c >= 0; c—){

7    tab[c] = al/c;

8    w += tab[c];

9    )

10    return w;

11    )

(gdb)

Za pomocą polecenia break fbl main.cpp:7 if c == 0 umieszczany jest punkt przerwania iv Unii generującej blad Następnie program jest uruchamiany od początku za pomocą polecenia run frl (gdb) b main.cpp:? if c ==0

Breakpoint 1 at 0x4006d4: file main.cpp, linę 7.

(gdb) r

The program being debugged has been started already.

Start it from the beginning? (y or n) y

Starting program: home/gdb-test/gdb-test-example/test

Breakpoint 1, div (al=100) at main.cpp:7 7    tab[c] = al/c;

(gdb)

Teraz możliwe iesl przeanalizowanie stanu poszczególnych zmiennych za pomocą polecenia prinl I pl i zlokalizowanie źródła bledu.

(gdb) p c $3 = 0 (gdb) pal $4 = 100 (gdb) p w $5 = 301 (gdb)

9



Wyszukiwarka

Podobne podstrony:
test Systemy Wbudowane 09 StrefaWiedzy SW09 Quizy ► Próbny test końcowy [ -4 11 Przejdź do..Próbny t
Systemy Wbudowane 09 StrefaWiedzy SW09 Quizy ► Próbny test końcowy Próba 1 Jesteś zalogowany(a) jako
Systemy Wbudowane 09 StrefaWiedzy SW09 Quizy ► Próbny test końcowy Próba 1 Jesteś zalogowany(a) jako
Systemy Wbudowane 09 StrefaWiedzy SW09 Quizy ► Próbny test końcowy Próba 1 Jesteś zalogowany(a) jako
Systemy Wbudowane 09 StrefaWiedzy SW09 Quizy ► Próbny test końcowy Próba 1 Jesteś zalogowany(a) jako
Systemy wbudowaneRozdział 2DebuggerGDB 2.1.    Wstęp GNU Debugger (gdb) jest narzędzi
Systemy wbudowane Przykład sesji debuggera z odczytem zmiennych
Systemy wbudowane miejsce w któiym ciągle wykonanie programu zostaje zakończone a debugger przechodz
launch? Launch Debug Configuration Selection Choose a configuration to run GD6 Debugger GDB Server O
Systemy wbudowane• Zaliczenie ■    Wykład Kolokwium - elektroniczny test
Systemy wbudowane Informacje organizacyjne Podstawowe pojęcia związane z
Plan wykładu Podstawowe pojęcia związane ze sterowaniem i systemami wbudowanymi. Mikrokontrolery
System wbudowany - cechy •    układ mikroprocesorowy sprzężony

więcej podobnych podstron