Różnica między adresami gdb a „prawdziwymi” adresami?

Jeśli uruchomię program C / C ++ w gdb (po skompilowaniu z flagą -g) i sprawdzę adresy pewnych zmiennych, argumentów ... itd., A następnie uruchomię go poza gdb (używając./) czy te adresy będą takie same jak te, które widziałem w gdb? Jeśli są różne, czy są zazwyczaj podobne, czy będą drastycznie różne?

Pytam o to, ponieważ mam program przepełnienia bufora, który działa idealnie w gdb (z punktami przerwania i bez), jednak gdy próbuję go uruchomić poza gdb, nie działa.

questionAnswers(3)

yourAnswerToTheQuestion