This is the mail archive of the
gdb@sources.redhat.com
mailing list for the GDB project.
Re: Map offsets
- From: Daniel Jacobowitz <drow at mvista dot com>
- To: =?unknown-8bit?B?QuRuZy1oYSCg?= <jpbarda at hotmail dot com>
- Cc: gdb at sources dot redhat dot com
- Date: Sat, 9 Mar 2002 11:09:53 -0500
- Subject: Re: Map offsets
- References: <F69OlbpH71yEXUIEAOe0000ee27@hotmail.com>
On Sat, Mar 09, 2002 at 03:52:34PM +0000, B?ng-ha ? wrote:
> Hi!
>
> I'm sure this is a rather stupid question, but I'll ask it anyway:
> I'm debugging a couple of processes under linux, and I want to load the
> symbols from glibc. Now, the only way I've managed to figure out as to
> perform the task of finding the base address of libc if to look at the
> memory maps in /proc/?/maps, whence I get the base address of libc to be
> e.g. 0x40020000 (this was for mingetty). So naturally, I do add-symbol-file
> /lib/libc-2.2.2.so 0x4002000, but as it turns, it should be loaded
> 0x4003BCB0, i.e. at an offset of 0x1BCB0 from what /proc says. (I got the
> exact offset from looking at the dynamically linked function tables and
> comparing the read function to what was acutally loaded, if that would
> somehow matter) Anyway, I guess I could live with this small annoyance, if
> it wasn't for that other libs wants to be loaded with other offsets. 0x1BCB0
>
> didn't work with e.g. libresolv. And, I want to know the cause of this as
> well, of
> course.
> So could someone tell me how to get the real offset, because I can't imagine
>
> that there isn't an error-free way to get the address, right?
objdump -x /lib/libc.so.6:
10 .text 000e1460 0001d500 0001d500 0001d500 2**4
CONTENTS, ALLOC, LOAD, READONLY, CODE
That second number.
This should absolutely not be necessary! GDB should do it
automatically. What version of GDB are you using?
--
Daniel Jacobowitz Carnegie Mellon University
MontaVista Software Debian GNU/Linux Developer