iovisor / iovisor/bcc

Support stack unwinding without frame pointers present

Open
#1,234 9 comments 13 reactions 0 assignees View on GitHub
Dominant language
C
Stars
22.7k
Forks
4.1k
Avg merge
5d 13h
Merged PRs (30d)
3

Description

(tried to find another issue about this, couldn't find any)

Currently stack unwinding in bcc is only done using frame pointers. That often makes it hard to get combined user/kernel stacks, because a lot of libraries, especially libc, don't generally preserve frame pointers. Even if one recompiles libc with frame pointers, it does several syscalls directly via asm, making it infeasible for mere mortals to preserve frame pointers.

Perf supports stack unwinding via dwarf and lbr, support for either or both would be very helpful for bcc as well.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reviewing BCC's existing frame-pointer-based stack unwinding and compare it with the DWARF and LBR approaches mentioned in the issue, including how perf supports them. Done means BCC can provide combined user/kernel stacks without requiring frame pointers, with the supported approach and validation defined.

Written by the indexing model from the issue text.

Assessment

Tech stack
c, linux
Domain
operating-systems, performance, tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.