]> git.kaiwu.me - haproxy.git/commit
MINOR: sym: read local symbols and debug info from ELF files
authorOlivier Houchard <ohouchard@haproxy.com>
Tue, 15 Sep 2026 15:50:37 +0000 (17:50 +0200)
committerOlivier Houchard <cognet@ci0.org>
Thu, 1 Oct 2026 15:06:31 +0000 (17:06 +0200)
commit3e364747bd2d5014f46ff6b8db31932f84cc1ee3
treeb8e82969370954470c9d31d62e8095bbad1faf5a
parent005038b80d468cdca0a9fdcb4b3c993ec02f8367
MINOR: sym: read local symbols and debug info from ELF files

The dynamic linker and the embedded table only cover exported symbols and
our own objects, so static functions of system libraries still show as the
nearest export plus a large offset.

When files are readable, parse their .symtab, which lists local functions
too. On Linux the executable is read from /proc/self/exe, so a moved or
replaced file, or a relative exec path after a chdir (-C), still designates
the running image; a file whose program headers, or build-id when present,
do not match the image is ignored. Stripped objects fall back to the
separate debug file, looked up by GNU build-id and .gnu_debuglink as gdb
does, in /usr/lib/debug and the "tune.debug-file-directory" directories,
skipping a stale one whose build-id or CRC32 does not match. Files are
mapped only for the build.
doc/configuration.txt
include/haproxy/sym.h
src/cfgparse-global.c
src/sym.c