Re: Does gdb initialize uninitialized variables?

Martin Simmons
2022-02-22T22:20:28Z

I've sometimes seen different layout of the stack when running under gdb
because it changes the environment and converts argv[0] to an absolute
path.

You could try running the program without gdb and then attach gdb to it
from a different shell.

If the program crashes before you have time to attach gdb, then try
adding a call to sleep() in main() to delay it.

__Martin

>>>>> On Tue, 22 Feb 2022 21:30:26 +0000, Edgar Mobile via Gdb said:
>
> I tried it as the very first command even before run. Any more ideas? (tx already)
>
> ________________________________
> From: Ruslan Kabatsayev <b7.10110111@gmail.com>
> Sent: Monday, February 21, 2022 5:33 PM
> To: Edgar Mobile <heideggm@hotmail.com>
> Cc: gdb@sourceware.org <gdb@sourceware.org>
> Subject: Re: Does gdb initialize uninitialized variables?
>
> Hi,
>
> On Mon, 21 Feb 2022 at 12:45, Edgar Mobile via Gdb <gdb@sourceware.org> wrote:
> >
> > Greetings,
> >
> > I currently try to find a bug that might be caused by uninitialized variables/memory. But it never appears when I use gdb. Does gdb change how memory is initialized in any way, be it on stack or via new/malloc?
>
> Memory-related bugs that don't happen when using GDB but do without
> GDB are often caused by GDB disabling ASLR. This is usually useful for
> reproducibility of debugging sessions, but may indeed make address
> space layout too predictable and fail to reproduce a bug. Try using
> the GDB command "set disable-randomization off" (without quotes) to
> undo this behavior and thus start your program in a normal,
> randomized, environment.
>
> Besides, if your problem is indeed with uninitialized variables, you
> might find Valgrind memory checker more useful than a debugger.
>
> >
> > Regards
>
> Regards,
> Ruslan
>