erigontech / erigontech/silkworm

debugging: async stack traces lack information

Open
#1,526 0 comments 0 reactions 0 assignees View on GitHub
research
Dominant language
C++
Stars
318
Forks
84
PR merge metrics
No merged PRs in 30d

Description

If an exception is thrown from an async utility (Channel::receive, timeout, co_spawn) the stack trace will start at the last resume point.
It has no connection to the last co_await point, so there's very little context to debug it.
Debugging to find the crashing code path takes hours even if the crash is reproducible.
If such a stack comes from production and not reproducible it is unlikely to be debugged.

Note: GCD library on macOS with Swift/ObjC supports async stack traces, so we might learn something from it.

See https://github.com/chriskohlhoff/asio/issues/1239

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.