Problem calling functions within gdb (version 7.5)

Keith Seitz keiths@redhat.com
Thu Apr 25 15:09:00 GMT 2013


On 04/25/2013 07:24 AM, Saurabh T wrote:
>> From: tromey@redhat.com
>>
>> Saurabh> 1. call fn(3, x)
>> Saurabh> gdb says: Cannot resolve function fn to any overloaded instance
>> Saurabh> This used to work with gdb 7.2. The function signature completely
>> Saurabh> matches the arguments so I dont know what it's complaining about.
>>
>> Please file a bug report.
>
> Done: http://sourceware.org/bugzilla/show_bug.cgi?id=15398

Thank you. This was introduced in 7.2 with support for ADL. Looks like a 
bug in types_equal, which doesn't account for cv qualifiers.

>> Saurabh> 2. print k
>> Saurabh> Let's say this prints 0x7ffb24
>> Saurabh> call fn2(0x7ffb24)
>> Saurabh> gdb again says: Cannot resolve function fn2 to any overloaded instance
>> Saurabh> This also used to work with gdb 7.2. Here I can understand if
>> Saurabh> promoting ints to arbitrary pointers is no longer supported.
>>
>> I was under the impression that we allowed this again, but it fails for
>> me too. Please file another bug for this one.
>
> Done: http://sourceware.org/bugzilla/show_bug.cgi?id=15399

What is "show check type"? If that is enabled/non-zero, gdb will not 
allow this conversion. If you disable it ("set check type 0"), it should 
work:

(gdb) p fn2(0x7fffffffde14)
Cannot resolve function fn2 to any overloaded instance
(gdb) set check type 0
(gdb) p fn2(0x7fffffffde14)
3
$7 = void

Keith



More information about the Gdb mailing list