Repository navigation
fix: install libc6-dbg during memory and walltime setup - #601
not-matthias wants to merge 1 commit into
Conversation
Merging this PR will degrade performance by 12.57%2 warnings
Warning Please fix the performance issues or acknowledge them on CodSpeed. Performance Changes
Tip Investigate this regression by commenting Comparing Footnotes
|
ac2b54f to
37bdaf7
Compare
[Medium impact] The PR appears safe to merge; no actionable new defects were found. SummaryAdds best-effort
|
37bdaf7 to
e3a2809
Compare
Share best-effort libc debug symbol installation across memory, walltime, and simulation setup. Keep Valgrind installation independent of optional debug symbols and use file-based checks for restored packages. Accumulate package metadata across separate cached installations. Keep symbol helpers private and document the shared-cache contract.
e3a2809 to
aadcdc1
Compare
Install
libc6-dbgduring memory and walltime setup, as the valgrind setup already does.Ubuntu's libc is stripped and only ships
.dynsym, so glibc's static functions (__libc_start_call_main,start_thread,clone3) have no symbol. Their frames are then named after their runtime address, which changes on every run because of ASLR. The same frame never matches across runs, so a differential flamegraph marks everything below it as new or dropped. The runner already warns about the missing debug file after the run, but nothing installed it outside valgrind mode.The install is best effort and never fails the setup:
The libc debug file probe and the "missing libc debug symbols" warning move out of the valgrind setup into a shared helper, and the warning no longer says "valgrind". The valgrind setup otherwise behaves as before.
Only libc is covered. Other stripped modules (libstdc++, stripped user binaries) still show up as addresses, so the issue stays open. Resolving symbols through debuginfod would cover those, and the install can then go away (FIXME in both setups).
Verified by recording an allocating C program with
codspeed exec --mode memoryin anubuntu:24.04container that had nolibc6-dbg. Setup installed the package, and the parsed profile named__libc_start_call_main,clone3andstart_threadinstead of addresses. I did not run the walltime path end to end.Refs COD-4026