formaldehyde_spoon
August 14th, 2010, 04:48 PM
I'm using a library for grammatical evolution called libGE for a project at uni.
I've compiled the library and run one of it's example programs on my 32 bit netbook just fine, but the same program crashes every time I try to run it on my 64 bit desktop.
At random places during processing it will crash with a message similar to (but never exactly the same as) one of the following three examples :
*** glibc detected *** ./GEGCC: munmap_chunk(): invalid pointer: 0x00000000013444c0 ***
*** glibc detected *** ./GEGCC: free(): invalid size: 0x0000000001d864c0 ***
*** glibc detected *** ./GEGCC: corrupted double-linked list: 0x0000000001487800 ***
The addresses and function names/reasons are always different.
I've also had just a plain old seg fault, without any other info (but only once, it's usually as above).
It does helpfully give a memory dump and stack trace, but as the error is always different, and the code is fine on a 32 bit machine I haven't looked at them much.
I found I had the 32 bit gnu c library installed, so replaced it with the 64 bit version, but that made no difference.
I tried compiling and running with ''linux32 -B -3 '' as a prefix to the compiler and the program itself, but that didn't help either (no apparent change).
Why this is happening, and what I can do about it?
To be honest, I don't understand what is going on at all....
I've compiled the library and run one of it's example programs on my 32 bit netbook just fine, but the same program crashes every time I try to run it on my 64 bit desktop.
At random places during processing it will crash with a message similar to (but never exactly the same as) one of the following three examples :
*** glibc detected *** ./GEGCC: munmap_chunk(): invalid pointer: 0x00000000013444c0 ***
*** glibc detected *** ./GEGCC: free(): invalid size: 0x0000000001d864c0 ***
*** glibc detected *** ./GEGCC: corrupted double-linked list: 0x0000000001487800 ***
The addresses and function names/reasons are always different.
I've also had just a plain old seg fault, without any other info (but only once, it's usually as above).
It does helpfully give a memory dump and stack trace, but as the error is always different, and the code is fine on a 32 bit machine I haven't looked at them much.
I found I had the 32 bit gnu c library installed, so replaced it with the 64 bit version, but that made no difference.
I tried compiling and running with ''linux32 -B -3 '' as a prefix to the compiler and the program itself, but that didn't help either (no apparent change).
Why this is happening, and what I can do about it?
To be honest, I don't understand what is going on at all....