This is the mail archive of the
mailing list for the GDB project.
Differentiating symbols in multiple copies of shared libraries
- From: Avi Gozlan <avi at checkpoint dot com>
- To: "'gdb at sourceware dot org'" <gdb at sourceware dot org>
- Cc: Avi Gozlan <avi at checkpoint dot com>
- Date: Thu, 9 Dec 2010 17:50:30 +0200
- Subject: Differentiating symbols in multiple copies of shared libraries
In an implementation of a multi-threaded program we need to have multiple instances of the same text residing in different virtual addresses. For this purpose different copies of the object file are loaded using dlopen().
We did not find a way for GDB to refer to a symbol in a specific copy of the object file (other then referring to the specific address). I know that DBX supports this by qualifying `<shared object name>`<function name>. Is there similar feature in GDB?
Quoting Daniel J. from a message posted in May 2007 it seemed that this issue was already known:
"> My questions are:
> 1. How do I inspect all the symbols of the same name in the process
> space? ( I tried loading the symbol from each library
> load-symbol-file. It didn't help either. In case of ambiguity, dbx used
> to show all symbols qualified with the library name and let us choose
> the right one)
> 2. How do I qualify a symbol with the library name where it belongs to?
> ( for eg. `libfoo.so`foo_bar )
Basically, you can't. Yet. We know we need to fix this."
Is this fixed?
Please note that we need to differentiate between symbols not only for defining breakpoints but for other needs such as disassembly, backtrace as well.
Your input regarding this issue will be appreciated.