Googling this problem doesn't show many people complaining, so I'm wondering if it's just something wrong with my system. So, simply put: int main() { abort(); } Running it and getting backtrace gives: #0 0xb7ebdee9 in raise () from /lib/tls/libc.so.6 #1 0xb7fcbedc in ?? () from /lib/tls/libc.so.6 #2 0xbffff3f0 in ?? () #3 0xb7ebf781 in abort () from /lib/tls/libc.so.6 #4 0x00000000 in ?? () #5 0x00000020 in ?? () .. #37 0xb8000c40 in ?? () from /lib/ld-linux.so.2 #38 0xb7fe919c in ?? () #39 0x08048217 in ?? () #40 0xbffff3d8 in ?? () #41 0xb7ff23cf in _dl_lookup_versioned_symbol () from /lib/ld-linux.so.2 #42 0xb7ea97f8 in __libc_start_main () from /lib/tls/libc.so.6 #43 0xb7fcbedc in ?? () from /lib/tls/libc.so.6 Not very helpful. Sometimes it gives almost usable backtrace by losing only the first 5 functions, but sometimes it's entirely corrupted. First this happened with Linux 2.6.5, gdb 6.0 and gcc 3.something. I went back to 2.4 kernel. Today I thought maybe it would be fixed by now, but it still happens with 2.6.9-rc2-mm1, gdb 6.2.1 and gcc 3.3.4 (from Debian unstable). CPU is Athlon XP. Is this kernel or gdb problem?