Porting issue from 32-bit to 64 bit
Colin Law
clanlaw at googlemail.com
Thu Jan 5 12:15:30 UTC 2012
On 5 January 2012 11:00, Shashank Ghoti <shashank.ghoti at gmail.com> wrote:
> Hi All,
>
> We are porting the application from 32-Bit to 64 Bit and OS is also 64-Bit .
> All the processes are highly generating core dump because of align problem
> when we go to 64 bit.
>
> We have run processes using GDB and found the below problem.
>
> Let's say the class
> class demo
> {
> private:
> int a;
> char *ptr;
> int b;
> };
>
> GDB shows the object size created is 16 bytes ( 16 bytes memory creation in
> HEAP)while we go inside the class constructor, the size is shown of the
> "This pointer" is 24 for this kind of class defined. We think that the
> problem is due to alignment.
>
> The problem has gone away if we re-define the class as:
> class demo
> {
> private:
> char *ptr;
> int a;
> int b;
> };
>
> But we have many processes and there are lot of files. So it would be taking
> a lot of time to manually fix it.
> Are we missing any compiler flag? OR how to fix it? We have been trying
> find out since last two weeks? We don't know.
Are you sure that you have compiled everything with the same flags? I
have seen that sort of problem when different files have been compiled
with different options. Another possibility is that the wrong
versions of libraries are being used.
Are you able to replicate the problem you describe above with a very
simple application compiled in the same way.
Colin
More information about the ubuntu-users
mailing list