Mirror of the gdb mailing list
 help / color / mirror / Atom feed
* Could GDB get offset of a field in virtual base class through NULL pointer
@ 2013-09-28 16:23 hex
  2013-09-28 18:39 ` Jan Kratochvil
  0 siblings, 1 reply; 5+ messages in thread
From: hex @ 2013-09-28 16:23 UTC (permalink / raw)
  To: gdb

Hi All,

I defined two classes as following:
// test.cpp
class A{
public:
     int a;
};
class B: public virtual A{
public:
     int b;
};

GDB could print &(((B *)0)->a), but it could not print &(((B *)0)->a).
I debugged GDB, and found it try to visit the virtual table of (B *)0,
then it failed.  It is reasonable. But I think whether GDB could
support this case, it could just regard the NULL pointer as a special
case: it could get offset using TYPE_BASECLASS_BITPOS().  But the
TYPE_BASECLASS_BITPOS() returns 0 now because we have not set a value
for virtual base class. Then problem is whether we could store an
offset for virtual base class to support above case.  But I do not
know how to get this offset from sections of its binary. Could you
give some suggestions please? Thank you!


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2013-09-30 14:29 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-09-28 16:23 Could GDB get offset of a field in virtual base class through NULL pointer hex
2013-09-28 18:39 ` Jan Kratochvil
2013-09-29  1:59   ` hex
2013-09-30  8:16     ` Jan Kratochvil
2013-09-30 14:29       ` hex

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox