[PATCH v8 0/6] glibc: Add SFrame support for stack backtracing
claudiu.zissulescu-ianculescu@oracle.com
claudiu.zissulescu-ianculescu@oracle.com
Mon Jul 14 07:59:20 GMT 2025
From: Claudiu Zissulescu <claudiu.zissulescu-ianculescu@oracle.com>
Hello,
Please find the final SFrame patch series. All the patches were
approved by DJ/Florian.
I would like to thank for the review to all reviewers.
Please consider this series to commit into mainline as I do not have
rights to do so.
Thank you,
Claudiu
ABI impact notes:
* Changes in 'struct dl_find_object'
- A new member 'void *dlfo_sframe' is inserted to the structure.
- The member '__dlfo_reserved' is changed, removing one element, which
is a decrease of 64bits.
- The size of the type has not changed, as the new added field (i.e.,
dlfo_sframe) size is of the same size as of the one element removed
from struct memeber __dlfo_reserved. For 32bit systems, a padding is
added to compensate for pointer size change.
- A new macro DLF_SFRAME is introduced. It helps controlling the
newly introduced flag bit in dlfo_flags member. This may implies
changing specific ABI tests (e.g. glibc: update
conform/data/dlfcn.h-data file)
- The function 'dl_find_object' is called within libc' backtrace
routine using GLRO macro, thus avoinding any PLT calls.
* Possible issues
- Automatic ABI checkers may mark this change as an ABI change, thus,
human review and updating of the scripts is required.
- For unknown programs which directly access the '__dlfo_reserved'
field, this change is incompatible. As note, this field should not
be used by anyone as it is reserved for further changes of the
dl_find_object structure.
Other observations:
- The SFrame backtracer is falling back to Dwarf unwinder if it
detects any posibility of a truncate trace.
- Compiling the x86 tst-quadmod1.S test file with --gsframe will hit
binutils' assembler Bug #32879.
Thank you,
Claudiu
Claudiu Zissulescu (6):
elf: Add SFrame support to _dl_find_object function
x86: Add SFrame support for x86 architecture
aarch64: Add SFrame support for aarch64 architecture
elf: Add SFrame stack tracing
configure: Add --enable-sframe option
SFrame: Add tests that uses DWARF backtracer
INSTALL | 5 +
Makeconfig | 8 +-
NEWS | 4 +
config.make.in | 1 +
configure | 129 ++++
configure.ac | 44 ++
debug/Makefile | 28 +
debug/backtrace.c | 46 +-
dlfcn/dlfcn.h | 10 +-
elf/dl-find_object.h | 52 +-
manual/dynlink.texi | 17 +-
manual/install.texi | 5 +
sysdeps/generic/Makefile | 1 +
sysdeps/generic/sframe-read.c | 566 ++++++++++++++++++
sysdeps/generic/sframe-read.h | 106 ++++
sysdeps/generic/sframe.c | 187 ++++++
sysdeps/generic/sframe.h | 367 ++++++++++++
sysdeps/generic/uw-sigframe.h | 31 +
sysdeps/unix/sysv/linux/aarch64/uw-sigframe.h | 78 +++
sysdeps/unix/sysv/linux/x86_64/uw-sigframe.h | 76 +++
20 files changed, 1743 insertions(+), 18 deletions(-)
create mode 100644 sysdeps/generic/sframe-read.c
create mode 100644 sysdeps/generic/sframe-read.h
create mode 100644 sysdeps/generic/sframe.c
create mode 100644 sysdeps/generic/sframe.h
create mode 100644 sysdeps/generic/uw-sigframe.h
create mode 100644 sysdeps/unix/sysv/linux/aarch64/uw-sigframe.h
create mode 100644 sysdeps/unix/sysv/linux/x86_64/uw-sigframe.h
--
2.50.1
More information about the Libc-alpha
mailing list