Diferença entre endereços gdb e endereços "reais"?

Se eu executar um programa C / C ++ no gdb (depois de compilar com o sinalizador -g) e examinar os endereços de certas variáveis, argumentos ... etc, e então eu o executo fora do gdb (usando./) esses endereços serão os mesmos que vi no gdb? Se eles são diferentes, eles geralmente são semelhantes ou serão drasticamente diferentes?

Eu pergunto isso porque eu tenho um programa de estouro de buffer que funciona perfeitamente no gdb (com e sem pontos de interrupção), no entanto, quando tento executá-lo fora do gdb, ele não funciona.

questionAnswers(3)

yourAnswerToTheQuestion