[prev in list] [next in list] [prev in thread] [next in thread] 

List:       hpux-cxx-dev
Subject:    Re: CXX-DEV: Debugging core
From:       Dennis Handly <dhandly () cup ! hp ! com>
Date:       2006-04-29 2:50:45
Message-ID: 200604290250.TAA06616 () hpcll183 ! hp ! com
[Download RAW message or body]

>From: "Sandeep Warikoo" <warikoo.sandeep@gmail.com>
>CDR class gets derived from only Base class. Although mpTempRec (Base
>pointer) is member of another class which has diamond inheritance. Could
>this be the reason why this is happening?

I don't think where mpTempRec is defined is the issue.  It does have the
correct type "Base*".

(gdb) ptype (CDR*)mpTempRec
>type = class CDR : public Base {

Ok, just single non-virtual inheritance.  But with virtual functions.

>    virtual int getRtPort(void);

You have a few extra virtual functions in your derived class.

>(gdb) p (CDR*)0x800000011c0c3958
>$32 = (class CDR *) 0x800000011c0c3958

So if it doesn't know it is a pointer to Base, it seems to work.
So the debug info for Base could be bad?

>> Is CDR only single inherited non-virtual from Base?

>No there are other classes that get inherited from Base

I meant does CDR only have one base class.  Yes.

>(Even the shared libraries where they are present are not loaded, only
>CDR.sl gets loaded)

If you have lots of shared libs, have you defined Base differently in
some?  Or have you compiled with different -Ds such that there are
extra members in some?

>> The following are the plabels for each virual function above:
>>
>> Junk?
>> 0x800003ffbfcfc190 0x800003ffbfd50f78   0x0000000000000000

>So does this show that one of the entry in vtable for virtual function got
>corrupted, due to which this problem is occurring?

Sorry, what I meant by "junk" was that I displayed more data than the
size of the vtable and that was just some extra unrelated stuff.
Of course these could be the "few extra virtual functions" in CDR.

As to your "Couldn't find virtual table..." problem, if you want to still
pursue it, you'll have to contact the Response Center.

And probably have to provide your executable and libs.
They also may require any data files and instructions on how to get to
the bad function in question.

You may be lucky that debug info dumping/validation tools may point
to the problem.

I'm not sure you mentioned what version of gdb and aC++ you were using??
 _________________________________________________________________
 To leave this mailing list, send mail to majordomo@cxx.cup.hp.com
    with the message UNSUBSCRIBE cxx-dev
 _________________________________________________________________
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic