From mboxrd@z Thu Jan 1 00:00:00 1970 From: "H . J . Lu" To: Kevin Buettner Cc: Mike Krogh , gdb@sourceware.cygnus.com Subject: Re: debugging a dynamically loaded library Date: Wed, 29 Aug 2001 16:07:00 -0000 Message-id: <20010829160725.A25904@lucon.org> References: <15245.21579.555348.285018@gomer.ceintl.com> <1010829224126.ZM19874@ocotillo.lan> X-SW-Source: 2001-08/msg00222.html On Wed, Aug 29, 2001 at 03:41:26PM -0700, Kevin Buettner wrote: > > saguaro:dynlib$ /saguaro1/sourceware/bld-saguaro/gdb/gdb main > GNU gdb 2001-08-21-cvs (MI_OUT) > Copyright 2001 Free Software Foundation, Inc. > GDB is free software, covered by the GNU General Public License, and you are > welcome to change it and/or distribute copies of it under certain conditions. > Type "show copying" to see the conditions. > There is absolutely no warranty for GDB. Type "show warranty" for details. > This GDB was configured as "i686-pc-linux-gnu"... > (gdb) b main.c:23 > Breakpoint 1 at 0x80487fc: file main.c, line 23. > (gdb) r > Starting program: /home/kev/ctests/dynlib/main > > Breakpoint 1, main (argc=1, argv=0xbffffa2c) at main.c:23 > 23 init = dlsym(handle, "dso_init"); > (gdb) b dso_init > Breakpoint 2 at 0x400188a2: file dso.c, line 10. For some reason, it doesn't work for me: GNU gdb 2001-08-29-cvs (MI_OUT) .... (gdb) b main.c:23 Breakpoint 1 at 0x8048820: file main.c, line 23. (gdb) r Starting program: /home/hjl/bugs/gdb/dlopen/main Breakpoint 1, main (argc=1, argv=0xbffff804) at main.c:23 23 init = dlsym(handle, "dso_init"); (gdb) b dso_init Cannot access memory at address 0x123 (gdb) p dso_init $1 = {} 0x40017800 (gdb) info shared >From To Syms Read Shared Object Library 0x400281d0 0x40028fc0 Yes /lib/libdl.so.2 0x40047400 0x40147080 Yes /lib/i686/libc.so.6 0x40001eb0 0x40012f20 Yes /lib/ld-linux.so.2 0x400176d0 0x400178b0 Yes ./dso.so I am using glibc 2.2.4 on x86. It seems that gdb doesn't add the base address of ./dso.so. H.J.