This is the mail archive of the
gdb@sourceware.org
mailing list for the GDB project.
Re: GDB: problem debugging 32 bit binary on 64 bit machine
- From: Jan Kratochvil <jan dot kratochvil at redhat dot com>
- To: Jeff Kenton <jkenton at tilera dot com>
- Cc: gdb at sourceware dot org
- Date: Tue, 29 Nov 2011 22:11:02 +0100
- Subject: Re: GDB: problem debugging 32 bit binary on 64 bit machine
- References: <4ED54766.2020601@tilera.com>
On Tue, 29 Nov 2011 21:58:14 +0100, Jeff Kenton wrote:
> 0x400000008" (address is above the 32 bit limit). This is caused by
> a call to extract_typed_address() from scan_dyntag() reading an 8
> byte type when it should only be reading 4 bytes.
ARCH_SIZE there should be 32 and TARGET_GDBARCH should be 32-bit.
I guess for some reasons your GDB found wrong (64-bit) library for your 32-bit
program. See the settings like `set solib-search-path', `set sysroot' etc.
> I have two questions:
> 1. is tweaking extract_typed_address() the right way to handle 32
> bit addresses on a 64 bit machine?
No. If ARCH_SIZE and TARGET_GDBARCH are set right it will work.
> 2. what's going wrong with dl_main()?
There is called a notification new library has been loaded in the inferior,
therefore GDB tries to load a matching symbol file (=the library itself) on
the GDB side.
> 3. meta-question: is this a generic bug in gdb's handling of 32 bit
> binaries, or is there likely something I missed while porting?
It 32-on-64 normally works, at least in Fedora, no custom patches for it
there.
Regards,
Jan