Corrupted gdb frames
Hi,
I have this wierd error in gdb on my laptop.
I've tried recompiling gdb, and I've tried a few versions, including 6.3. It's an amd64 laptop running gentoo, with 2.6.10. It's always happened, across kernels, and across any kind of system library that I've updated in the past 6 months (which is all of them).
CFLAGS="-march=k8 -m64 -msse -mmmx -mfpmath=sse -m3dnow -funroll-loops -O3 -pipe"
Is what everything is compiled with.
When I run gdb and I want to see my call stack, bt, I get thousands of frames. An excerpt may be useful:
#2379 0x0000000000000000 in ?? ()
#2380 0x0000000000000001 in ?? ()
#2381 0x0000002a97373b51 in ?? ()
#2382 0x000000300000b340 in ?? ()
#2383 0x0000000000000000 in ?? ()
#2384 0x0000003000101880 in ?? ()
#2385 0x0000007fbfffef20 in ?? ()
#2386 0x0000003000009dd0 in ?? ()
At the end it stops with:
Cannot access memory at address 0x7fc0014f48
Of course the adresses are different depending on the program and where it was loaded.
All of this is intermixed with actual calls once in a long while for some programs, others report nothing but junk (including hundreds of frames consisting of 0x00....000 in ?? () ).
I don't omit frame pointers clearly, and I have tried different versions of gcc, from vanilla to the gentoo hardened patches.
Any idea what causes this?
Thanks
|