Debugging with GDB and ASLR

Eli Zaretskii eliz@gnu.org
Thu Apr 25 15:17:56 GMT 2024


> Date: Thu, 25 Apr 2024 11:13:29 +0100
> Cc: nd <nd@arm.com>
> From: Luis Machado <luis.machado@arm.com>
> 
> On 4/25/24 11:01, Eli Zaretskii via Gdb wrote:
> > Hi,
> > 
> > It is well known that ASLR can get in the way of debugging some
> > problems because the addresses of data change between runs, and so
> > what you have learned from one debugging session cannot always be
> > safely used in another session, when ASLR is in effect.
> > 
> > I'm told that GDB disables ASLR, at least on GNU/Linux, for that
> > reason.  If that is true, could someone please point me to the code
> > which achieves that?  Also, is this done on other systems as well, and
> > specifically on MS-Windows when debugging native Windows programs?
> > 
> > TIA
> 
> On Linux, it does so through the personality function in gdb/nat/linux-personality.c.
> 
> I heard there were issues with disabling ASLR for Windows, but we seem to try to do
> it in gdb/nat/windows-nat.c:create_process_wrapper. Maybe the call to UpdateProcThreadAttribute
> attempts to do it?

Right, thanks.


More information about the Gdb mailing list