erigontech / erigontech/silkworm
debugging: async stack traces lack information
Open
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
Assessment
This issue has not been assessed yet.