can't unwind through trampoline created by uprobe
- Dominant language
- Rust
- Stars
- 40
- Forks
- 0
- PR merge metrics
- No merged PRs in 30d
Description
Hi,
I'm writing a eBPF-based profiler for C++ and Lua script recently, I unwind stacks in BPF similar to what cargo-trace does.
I found that stask frames always break when rip goes into address range of uprobes, because no unwind rules for uprobe trampoline in dwarf.
> 7ffdb018c000-7ffdb018e000 r-xp 00000000 00:00 0 [vdso]
7fffffffe000-7ffffffff000 --xp 00000000 00:00 0 [uprobes]
ffffffffff600000-ffffffffff601000 --xp 00000000 00:00 0 [vsyscall]
I have no idea how to unwind through it. Any suggestions?
Contributor guide
No contributing guide indexed for this repository
Research direction
No source file, test, or entry point is named. Start by searching cargo-trace for uprobe and stack-unwinding handling, then reproduce the reported break with the described eBPF profiler; done means establishing and validating a way to unwind past uprobe trampoline frames.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- lua, rust
- Domain
- observability-sre, operating-systems
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100