We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

Stack walking/unwinding without frame pointers

Formal Metadata

Title
Stack walking/unwinding without frame pointers
Title of Series
Number of Parts
542
Author
License
CC Attribution 2.0 Belgium:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Identifiers
Publisher
Release Date
Language

Content Metadata

Subject Area
Genre
Abstract
Sampling CPU profilers periodically fetch the stacks of the profiled processes that are running on the CPU at a given time. Walking the stacks of native processes with a little work is easily possible when frame pointers(FPs) are present. But most binaries in the real world are not compiled with FPs. So it can get quite complicated if profilers have to walk the stacks when frame pointers are omitted. In this talk, we will talk about how we can walk the stacks using the DWARF CFI (mainly .eh_frame). We will also discuss how eBPF is helping us with that and how extending the current stack walking facilities can be useful especially in interpreted languages, such as Ruby, as well as runtimes with JITs, like the JVM.