This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: PATCH: PR shlibs/11293: gdb is broken on Linux/i386
- From: Jan Kratochvil <jan dot kratochvil at redhat dot com>
- To: "H.J. Lu" <hongjiu dot lu at intel dot com>
- Cc: GDB <gdb-patches at sourceware dot org>
- Date: Wed, 17 Feb 2010 21:29:44 +0100
- Subject: Re: PATCH: PR shlibs/11293: gdb is broken on Linux/i386
- References: <20100217201031.GA24995@lucon.org>
On Wed, 17 Feb 2010 21:10:31 +0100, H.J. Lu wrote:
> ULONGEST is 64bit on Linux/i386. We should check CORE_ADDR instead
> of ULONGEST for address size. OK to install?
# solib-svr4.c:1468: internal-error: enable_break: Assertion `load_addr < space_size' failed.
# For 32bit, addr_bit is 32 and CORE_ADDR is 4 byte.
I was regression-testing it for i386 with --enable-64-bit-bfd, sorry.
> - if (addr_bit < (sizeof (ULONGEST) * HOST_CHAR_BIT))
> + if (addr_bit < (sizeof (CORE_ADDR) * HOST_CHAR_BIT))
> {
> CORE_ADDR space_size = (ULONGEST) 1 << addr_bit;
> CORE_ADDR tmp_entry_point = exec_entry_point (tmp_bfd,
This code in GDB commonly uses even:
CORE_ADDR space_size = (CORE_ADDR) 1 << addr_bit;
I copied it from a wrong place.
Yes, I agree with your fix (this is not an approval).
Thanks,
Jan