C++, "too few arguments in function call" error?
rob@encodia.biz
rob@encodia.biz
Fri Mar 17 19:06:00 GMT 2006
On Mar 17, 2006, at 6:03 AM, Dave Korn wrote:
> On 17 March 2006 03:57, rob@encodia.biz wrote:
>>
>> (gdb) p set1.begin()
>> too few arguments in function call
>
> This is a total shot in the dark, but maybe something's gone
> wrong and it's
> expecting you to pass the this pointer as an explicit first
> argument rather
> than an implicit one?
That does work sometimes. But if the class is a template, or if the
method is overloaded, I can't do it, or I have to type way too much,
or I get this <incomplete type> error. Examples...
(gdb) p set1.begin(&set1)
Cannot resolve method
set<xml::XmlNode*,std::less<xml::XmlNode*>,std::allocator<xml::XmlNode*>
>::begin to any overloaded instance
(gdb) p set<xml::XmlNode*, std::less<xml::XmlNode*>,
std::allocator<xml::XmlNode*> >::begin(&set1)
$1 = {
_M_node = 0x3008c0
}
That works, but it's horrible.
(gdb) p set<xml::XmlNode*, std::less<xml::XmlNode*>,
std::allocator<xml::XmlNode*> >::size(&set1)
$8 = <incomplete type>
(gdb) p (int)(set<xml::XmlNode*, std::less<xml::XmlNode*>,
std::allocator<xml::XmlNode*> >::size(&set1))
Invalid cast.
I can't get the size(), bu it's similar to begin() -- both are
inline, both return types that are typedef'd in the same place.
(gdb) p vector<xml::Step*, std::allocator<xml::Step*> >::begin(&steps)
non-unique member `begin' requires type instantiation
?
Rob
More information about the Gdb
mailing list