This is the mail archive of the gdb@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Is c++ debugging really "this" bad?


I'm doing some contract work helping a small company with their tool
issues and have run across a nasty c++/gdb interaction.  I've been
checking the archives and I find some related bugs in the c++ area, but
not the specific issue I'm running into.

The basic problem.  Printing the value of 'this', the c++ object
pointer, does not agree with a simple printf of 'this' in the same
routine.  The particular routine I'm looking at is a destructor routine,
and I have seen reasonable values of 'this' in other routines, but the
wrong behavior seems to occur more often.  Or maybe just gets reported
to me more often...

Some details:  We're using the 3.0.1 version of gcc and gdb with a mips
32 instruction set.  We do have a version of 3.0.4 available, but have
not done extensive testing with that.  Gdb first looks for a local
variable, $this, but doesn't find it in the current scope, or any
containing scope.  Then it attempts to find 'this' in the local scope,
and, failing that, looks to the outer scope where it does eventually
find a 'this' variable, which is of course totally unrelated.  Our
standard compilation options are (among a variety of others) -g and -O1.
I've tried -g -O0, -g by itself (pretty much the same, eh?), -g3 -O1,
and while -O0 produces a local copy of 'this', it still doesn't find the
right value.  The gcc compiler I'm using produces a .mdebug section,
which contains ecoff data, and does not recognize a -gdwarf or -gdwarf-2
option.

I keep getting the feeling that maybe I'm just missing something basic,
or the debugger is.  Certainly the compiler knows where the real value
is, and I can track it via the machine code for any line that
manipulates 'this', but I don't expect all the users to be able to do
that readily.  Does this ring any bells with anyone?

Thanks,
PeterT



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]