This is the mail archive of the
gdb@sources.redhat.com
mailing list for the GDB project.
debug dynamically linked modules..
- From: Jesse Marlin <jesse dot marlin at intec dot us>
- To: Jack J <get_info101 at yahoo dot com>
- Cc: gdb at sources dot redhat dot com
- Date: Thu, 16 Oct 2003 16:24:42 -0400
- Subject: debug dynamically linked modules..
- References: <20031016193935.98962.qmail@web20507.mail.yahoo.com>
- Reply-to: jesse dot marlin at intec dot us
Jack J writes:
> Hi,
>
> I would like to know how to debug using gdb
> (set breakpoint on routine, etc.) a dynmically linked,
> relocated code.
>
> The platform is RH Linux 9.0. There is some
> application
> module compiled with -fPIC and -shared, and
> -export-dynamic options.
> A global structure containing functions is exported by
> the DLL module.
> The problem: I would like to set breakpoint on one
> of the (file static) functions contained in this
> structure.
>
> >From mainline code after call to dlsym(..) (to the
> global structure), I try to set break point, and I
> get error: "Function xxx not defined.".
>
> I do 'info shared' on gdb and do see the file being
> loaded. Also I do see that "-g" option to add
> debug symbols in gcc.
>
> Is there anything I am missing ? How does one
> normally use gdb in such scenario ?
>
> Any tips, pointers/hints is appreciated.
>
> Thanks,
One thing I do that is successful most of the time is place a
breakpoint on a file:line instead of on a function. Try looking into
these:
br file:line - place a breakpoint on a file and line number.
C-x SPC does this for you in (X)Emacs.
info shared - shows which shared libraries are currently loaded.
(gdb) help sharedlibrary
Load shared object library symbols for files matching REGEXP.