This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [patch]: User choice for multiply-defined symbols
- From: Markus Deuling <deuling at de dot ibm dot com>
- To: Daniel Jacobowitz <drow at false dot org>
- Cc: GDB Patches <gdb-patches at sourceware dot org>, Ulrich Weigand <uweigand at de dot ibm dot com>
- Date: Wed, 07 May 2008 06:32:31 +0200
- Subject: Re: [patch]: User choice for multiply-defined symbols
- References: <481EBD33.6090704@de.ibm.com> <20080505114545.GA22274@caradoc.them.org>
Daniel Jacobowitz schrieb:
On Mon, May 05, 2008 at 09:54:27AM +0200, Markus Deuling wrote:
Hello,
the following patch makes use of the new "multiple-symbols" command introduced by Joel.
Hi Markus,
I'm totally confused by this explanation. What case are you handling
and what does it output before and after your patch?
Hi Daniel,
I guess I should have explained it more in deep, sorry. I', referring to this discussion:
http://sourceware.org/ml/gdb-patches/2008-01/msg00007.html
By that time I also worked on a patch that implements a new command for users to enable a user choice for
ambiguous symbols:
http://sourceware.org/ml/gdb-patches/2008-01/msg00344.html
The actual sense of the patch was to check for multiply-defined symbols at lookup time. If found and the
user enabled user choice, a menu should appear to let the user choose which of the symbols to take.
As Joel's patch introduces such a user command I made use of it and based my patch upon. So my current
patch uses the new "multiple-symbols" command. If set to "ask" and ambiguous symbols are found, the
user choice is called (output from testcase):
(gdb) break foo
[0] cancel
[1] all
[2] foo at ../../../../src/gdb/testsuite/gdb.base/multiple_symbols_mod.c:5
[3] foo at ../../../../src/gdb/testsuite/gdb.base/multiple_symbols.c:14
Without the patch GDB would take the first symbol "foo" it finds. I guess this would be the one in the main
executable in this case. To set a breakpoint at "foo" in multiple_symbols_mod.c the user has to explicitly
mention it. This exmaple shows the behaviour without patch:
(gdb) break foo
Breakpoint 2 at 0x100004b0: file ../../../../src/gdb/testsuite/gdb.base/multiple_symbols.c, line 14.
My patch doesn't change the default behaviour of GDB as the default setting for "multiple-symbols" is all
and the search for ambiguous symbols only takes place if set to "ask".
Here's Joel's patch for the documentation changes:
http://sourceware.org/ml/gdb-patches/2008-04/msg00044.html
Regards,
Markus
--
Markus Deuling
GNU Toolchain for Linux on Cell BE
deuling@de.ibm.com