I'm debugging a shared library. I found that the bug can be trigger when I enable ASLR in Linux host, while the bug disappears when ASLR is disabled.
I want to further debug the shared library with gdb. But I found it always loaded the shared library at a fixed address, which made the bug disappear.
Is there any way to disable this gdb's feature?
Is there any way to disable this gdb's feature?
Yes, you can set disable-randomization off
before running the program.
See this part of gdb documentation:
set disable-randomization off
Leave the behavior of the started executable unchanged. Some bugs rear their ugly heads only when the program is loaded at certain
addresses. If your bug disappears when you run the program under GDB,
that might be because GDB by default disables the address
randomization on platforms, such as GNU/Linux, which do that for
stand-alone programs. Use set disable-randomization off to try to
reproduce such elusive bugs.