Jeśli uruchomię program C/C++ w gdb (po kompilacji z flagą -g) i sprawdzę adresy pewnych zmiennych, argumentów ... itd., A następnie uruchomię to poza gdb (używając ./
) adresy są takie same jak te, które widziałem w gdb? Jeśli są inne, to zazwyczaj są podobne lub będą drastycznie odmienne?Różnica między adresami gdb a "prawdziwymi" adresami?
Pytam o to, ponieważ mam program przepełnienia bufora, który działa idealnie w gdb (z i bez punktów przerwania), jednak gdy próbuję go uruchomić poza gdb, to nie działa.
Jeśli chodzi o przepełnienie bufora, polecam spróbować Valgrind. – Troubadour
Wymuś program na rdzenny zrzut z "ulimit -c unlimited", a następnie sprawdź plik core za pomocą gdb. – strkol