This is the mail archive of the gdb@sourceware.org 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]

Re: C++ debugging pain


On date Tuesday 2008-08-26 09:36:35 -0700, Paul Pluzhnikov wrote:
> On Tue, Aug 26, 2008 at 9:22 AM, Stefano Sabatini
> <stefano.sabatini-lala@poste.it> wrote:
> 
> > * "class X does not have any method named Y": this happens with
> >  virtual methods defined in a parent class rather than in the class
> >  of the instance debugged
> 
> Try "set print object on".
> (I am working on a fix which would make that unnecessary).

I checked my gdbinit, I already had the command:
set print object

I think it should be equivalent to your command.

BTW I forgot to give my gdb version:
gdb --version
GNU gdb 6.8-debian

> > * "Cannot resolve method (null)X to any overloaded instance":
> >  this happen when I try to invoke a method on some object
> 
> This usually happens when you have a pointer to Foo, and do:
> 
>   print p.virtfn()
> 
> Instead, try:
> 
>   print p->virtfn()
> 
> (I am also working on that fix).
> 
> >  I've been already advised by Daniel Jacobowitz (thanks Daniel) that
> >  it could depend on the method invoked being inlined.

Another problem which I'm facing is that I sometimes can't set
breakpoints on some functions, for example:

(gdb) b PUDPSocket::WriteTo()
Function "PUDPSocket::WriteTo()" not defined.
(gdb) b PUDPSocket::WriteTo
the class PUDPSocket does not have any method named WriteTo
Hint: try 'PUDPSocket::WriteTo<TAB> or 'PUDPSocket::WriteTo<ESC-?>
(Note leading single quote.)

Note also the inconsistency in the feedback message.

These are classes from the libpt, but now I'm not sure they've been
compiled with the right options (-O0 -ggdb) due to messy build system
implemented for that library.

> If you compiled without '-O*', no inlining should have happened.
> If you do compile with '-g -O2', you are inflicting pain on yourself.

Well being a programmer I like to inflict myself pain, but I'm not that
masochistic ;-), always use -O0 -ggdb when compiling.

BTW I'd be glad to help testing, feel free to contact me if you need
some tester for those fixes.

Thanks for your precious help.

Regards.


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