Wenn ich ein C/C++ - Programm in Gdb (nach dem Kompilieren mit dem Flag -g) und ich untersuche die Adressen bestimmter Variablen, Argumente ... etc, und dann ich es außerhalb von Gdb (mit ./
) laufen diese Adressen sind die gleichen wie die, die ich in gdb gesehen habe? Wenn sie anders sind, sind sie normalerweise ähnlich oder werden sie sich drastisch unterscheiden?Unterschied zwischen gdb-Adressen und "echten" Adressen?
Ich frage dies, weil ich ein Pufferüberlaufprogramm habe, das perfekt in gdb funktioniert (mit und ohne Breakpoints), aber wenn ich versuche, es außerhalb von gdb auszuführen, funktioniert es nicht.
In Bezug auf Ihren Pufferüberlauf empfehle ich Ihnen Valgrind versuchen. – Troubadour
Erzwingen Sie das Programm zu Core-Dump mit "ulimit -c unlimited", dann untersuchen Sie die Core-Datei mit Gdb. – strkol