1. 17
  1.  

  2. 8

    Hi! Author here, was going to post but you were faster! :) Happy to answer any questions!

    TL;DR: Frame pointers are great, they allow cheap and reliable stack traces. Unfortunately, they are not always available. This is very problematic for BPF-based profilers, such as the one I work on, where the kernel helper to fetch a user stack only works if frame pointers are present.

    We’ve developed a BPF program that can walk native stack traces that lack frame pointers. We leverage the metadata provided by compilers in the form of DWARF unwind information, but we first preprocess it to be usable in the constrained BPF runtime.

    We hope this can be helpful to not only us and our users but the broader developer community!