help-gplusplus
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Problem in G++: invalid C++ class members offsets


From: Miles Bader
Subject: Re: Problem in G++: invalid C++ class members offsets
Date: Mon, 16 Apr 2012 14:57:34 +0900

Ilowry <al.skobelev@gmail.com> writes:
> In GDB 'p /x sizeof (SignalThread)' prints 0x188.
> If you are inside of AutoDetectProxy constructor then 'p /x (int)&this-
>>agent_ - (int)this' will also print 0x188.
> And 'p /x sizeof(*this)' prints 0x1d4.
>
> But if you outside of AutoDetectProxy code, exactly in
...
> then 'p /x (int)&auto_detect_proxy_->agent_ - (int)auto_detect_proxy_'
> will give you 0x180!
> And p /x sizeof(*auto_detect_proxy_) will print 0x1cc.

I've run into similar problems in the past, and it's always turned to
be a build issue, either where one file was recompiled after changing
the size / location of something, but another file wasn't, or where
two files were compiled with differing options that affect layout.

> I'm puzzled and have no idea how to fix this. :(
> Any ideas, please? This is in llvm gcc 4.2 on Mac OS X.

A gcc/g++ list might not be the best place to ask -- the code
generation here is being done by llvm, not gcc, and the version of gcc
being used for the compiler frontend is pretty old.....

-Miles

-- 
In New York, most people don't have cars, so if you want to kill a person, you
have to take the subway to their house.  And sometimes on the way, the train
is delayed and you get impatient, so you have to kill someone on the subway.
  [George Carlin]




reply via email to

[Prev in Thread] Current Thread [Next in Thread]