[patch]: User choice for multiply-defined symbols

Markus Deuling deuling@de.ibm.com
Wed May 7 11:36:00 GMT 2008


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



More information about the Gdb-patches mailing list