https://sourceware.org/bugzilla/show_bug.cgi?id=32713
Bug ID: 32713 Summary: elfutils fails to symbolize core dumps created by Linux 6.12+ Product: elfutils Version: unspecified Status: UNCONFIRMED Severity: normal Priority: P2 Component: libdw Assignee: unassigned at sourceware dot org Reporter: michael+sourceware at stapelberg dot ch CC: elfutils-devel at sourceware dot org Target Milestone: --- Hey folks, thanks for maintaining elfutils! I noticed that on my Linux machine, core dumps collected by systemd-coredump(8) do no longer show symbol names in the backtrace displayed by 'coredumpctl info'. Digging deeper, the issue is unrelated to systemd-coredump and can be reproduced by calling eu-stack directly, too. I used the following example program: % echo 'int main() { char *no = 0; *no = 0x23; }' > segfault.c % gcc -g -o segfault segfault.c -Wall -static You can find the compiled output at https://t.zekjur.net/2025-02-17-elfutils/segfault (just in case). When I let this program crash on Linux 6.13, I get a core dump like https://t.zekjur.net/2025-02-17-elfutils/core.segfault.1000.6158dd3b52af4b8384c103a8a336fc02.2913783.1739806843000000.zst When I let this program crash on Linux 6.1, I get a core dump like https://t.zekjur.net/2025-02-17-elfutils/core.segfault.0.8f168ad538ed480eab20ebbab491d953.1079959.1739805444000000.zst (You can easily tell the two apart by the .0. vs. .1000. uid in the front of the filename.) Now, when I check with elfutils 0.190, elfutils 0.192 or elfutils-0.192-42gb16f441c from git (current git HEAD), the coredump from Linux 6.1 can be symbolized; the one from Linux 6.13 cannot: % eu-stack --version eu-stack (elfutils) 0.190 Copyright (C) 2023 The elfutils developers <http://elfutils.org/>. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. % eu-stack -e ./segfault --core ./core.segfault.0.8f168ad538ed480eab20ebbab491d953.1079959.1739805444000000 PID 1079959 - core TID 1079959: #0 0x0000000000402e15 main #1 0x0000000000403398 __libc_start_call_main #2 0x00000000004056b0 __libc_start_main_impl #3 0x0000000000402d05 _start % eu-stack -e ./segfault --core ./core.segfault.1000.6158dd3b52af4b8384c103a8a336fc02.2913783.1739806843000000 PID 2913783 - core TID 2913783: #0 0x0000000000402e15 #1 0x0000000000403398 #2 0x00000000004056b0 #3 0x0000000000402d05 eu-stack: dwfl_thread_getframes tid 2913783 at 0x402d04 in <unknown>: No DWARF information found When I compare the two core dumps, I notice: % eu-readelf -a ./core.segfault.1000.6158dd3b52af4b8384c103a8a336fc02.2913783.1739806843000000 > core.no_syms.readelf.txt % eu-readelf -a ./core.segfault.0.8f168ad538ed480eab20ebbab491d953.1079959.1739805444000000 > core.has_syms.readelf.txt % diff -u core.no_syms.readelf.txt core.has_syms.readelf.txt --- core.no_syms.readelf.txt 2025-02-17 16:12:45.641427118 +0100 +++ core.has_syms.readelf.txt 2025-02-17 16:12:51.624711599 +0100 […] CORE 206 FILE 5 files: + 00400000-00401000 00000000 4096 /tmp/segfault 00401000-0047c000 00001000 503808 /tmp/segfault 0047c000-004a2000 0007c000 155648 /tmp/segfault - 00400000-00401000 00000000 4096 /tmp/segfault - 004a7000-004a9000 000a6000 8192 /tmp/segfault 004a2000-004a7000 000a1000 20480 /tmp/segfault + 004a7000-004a9000 000a6000 8192 /tmp/segfault […] I then tried different Linux kernel versions until I found that Linux 6.12 is the first kernel where things break. My suspicion is that commit https://github.com/torvalds/linux/commit/7d442a33bfe817ab2a735f3d2e430e36305354ea is responsible for the breakage. -- You are receiving this mail because: You are on the CC list for the bug.