I had some problems while trying to debug a program.
To be simply: the dubugger shows me wrong infos (some pointers will be displayed with wrong type).
I tryed to use debugger to find where was an error (luckly I find it myself) but debugger doesn't work as expected.
It is a program that uses qt 4.6.3 (I don't know if it is usefull)
1 2 3
|
DlgPalSection * psec = new DlgPalSection(this); //this refers to the actual class SffWidget
psec->function()
|
while stepping in DlgPalSection constructor with gdb this what happens
print this -> "this" is marked as (class) DlgPalSection__sd pointer (DlgPalSection__sd is another class) and not as (class) DlgPalSection
print parent -> "parent" (a pointer - private member of class DlgPalSection I am parsing with debugger) is marked as DlgPalSection__sd pointer instead of a (class) SffWidget pointer
so, consequentially I am not able to see any variable of DlgPalSection while parsing constructor (becouse it seems like it would be undefined reference) and not able to see any variable of DlgPalSection::parent pointer (becouse of wrong type assumed by gdb)
after the constructor is parsed (returning to the second line of the code I posted) the pointer psec (that should be DlgPalSection pointer in harmony of source code posted) is showed by gdb as a DlgPalSection__sd pointer instead of DlgPalSection pointer.
Anyone can explain me why gdb is showing me wrong infos (so doesn't allow me to analyze datas?)
Note: There isn't anything in sources that explains this wrong types
(as I remember that DlgPalSection * psec = new DlgPalSection -> psec is showed as DlgPalSection__sd type instead of DlgPalSection).
Thank for your time