Cześć :)
Jak w gdb można podglądnąć jak wygląda stos "w pobliżu" rozkazu, który jest obecnie wykonywany?
Chyba, że jakoś inaczej- ja chciałbym po prostu prześledzić jak odbywa się realizacja wyjątków od kuchni w C++.
pozdro :)

- Rejestracja:około 12 lat
- Ostatnio:15 dni
- Lokalizacja:Wrocław
- Postów:399
Nie lepiej po prostu disassembler? Wtedy bez problemu sprawdzisz sobie wszystko co cię interesuje.






- Rejestracja:ponad 12 lat
- Ostatnio:ponad 4 lata
- Postów:2412
Co rozumiesz przez przegladanie stosu? Wyswietlanie zmiennych lokalnych? Wyswietlanie obecnej/poprzednich ramek stosu?
Anyway...
#include <stdio.h>
int main() {
int a = 10, b = 20;
printf("%d %d", a, b);
return 0;
}
Majac taki program jak powyzej.
- Kompilujesz program
gcc foo.c -o foo --debug
- Odpalasz gdb
gdb foo
- Ustawiasz breakpointa zalozmy na linii z printf
break foo.c: 5
- Uruchamiasz program
run
, zeby zatrzymal sie na ustawionym breakpointcie. frame
bez argumentow ci wyswietli aktualna ramke stosu |info locals
wyswietli ci zmienne lokalne wraz z wartosciami.
Przyklad dzialania i outputu (nazwa pliku bedzie ciut inna):
(gdb) break hello_world.c: 5
Breakpoint 1 at 0x804841a: file hello_world.c, line 5.
(gdb) run
Starting program: /home/vixlur/Desktop/Others/hello_world
Breakpoint 1, main () at hello_world.c:5
5 printf("%d %d", a, b);
(gdb) frame
#0 main () at hello_world.c:5
5 printf("%d %d", a, b);
(gdb) info locals
a = 10
b = 20
(gdb)
Do poczytania: http://www.chemie.fu-berlin.de/chemnet/use/info/gdb/gdb_7.html
Jeszcze odpowiadajac na ostatnie pytanie:
ok, to poleć jakiś disassembler na linux, ewentualnie na windows.
Jesli moze byc windows, to darmowa wersja IDA wydaje sie byc najlepszym rozwiazaniem. Na linuxa afair darmowa jest niedostepna.

- Rejestracja:około 21 lat
- Ostatnio:około 3 lata
- Lokalizacja:Space: the final frontier
- Postów:26433
Polecam użyć graficznej nakładki na GDB jaką masz w Eclipse CDT ;)

- Rejestracja:ponad 14 lat
- Ostatnio:ponad 4 lata
- Postów:439
Mogę jedynie polecić debuggery na Windows, gdyż na Linuxie nie siedzę.
- Darmowy debugger OllyDbg v2 - http://www.ollydbg.de/version2.html - znakomita analiza kodu i prezentacja danych
Koniec ;). Chyba, że stać Cię na deasembler z wbudowanym debuggerem jak np. IDA (jest demówka, ale nie pamiętam czy posiada wbudowany debugger).
Cała reszta to syf nie warty instalowania.
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.