Re: *****SPAM***** casting in gdb

Daniel Jacobowitz
2002-12-13T16:46:30Z

On Fri, Dec 13, 2002 at 10:33:02AM -0500, Daniel Berlin wrote:
>
> On Friday, December 13, 2002, at 01:28 AM, Jacques Le Normand wrote:
>
> >how do you get gdb to cast to size_t?
> >I realize that size_t is a typedef to unsigned long long or somesuch.
> >A little background:
> >when I'm debugging my vector<int> v, gdb won't let me type v[0],
> >instead =
> >it says this: "One of the arguments you tried to pass to operator[] =
> >could not be converted to what the funtion wants."
> >I then looked up what operator[] took in the sgi docs and it said a =
> >size_t. Anyone have any ideas?
> >(I realize I can do p *(v._M_start+n) , but having a method for
> >casting =
> >would help me later on)
> >--Jacques
> >
> While this doesn't help *you*, it should help the current C++ people
> for GDB:
> I've seen this with STABS debugging info when some of the operator
> functions were left out of the debugging info, but others weren't (GCC
> + STABS will omit unused functions from debug info), and we ommitted
> the operator we really need to use, and in some cases when we parsed
> the types of the arguments out of the demangled function name and come
> up with some weird type.

Yeah, something like that's my guess; I've been getting this better but
it's taking time...

Jacques, could you do me a favor? Try to create a small test case for
the error message using vector.

The problem is almost certainly that the argument 'this' to the
operator is of the wrong type, not that the integer is of the wrong
type.

--
Daniel Jacobowitz
MontaVista Software Debian GNU/Linux Developer