Add data-structures for representing async stack-traces
Summary: Defines new data-structures folly::AsyncStackFrame and folly::AsyncStackRoot that can be used to build intrusive data-structures that represent asynchronous call-chains. These data-structures can be walked at either runtime from within the process or by external tooling, such as debuggers or profilers, allowing them to capture stack-traces that correctly attribute the calls to asynchonous callbacks to the asynchronous caller that initiaded the operation rather than to the immediate caller of the callback (typically an executor's event-loop). These data-structures are initially intended to be used by folly::coro coroutines to allow chains of these coroutines to be walked, but should also general enough to be applied to other types of asynchronous operations, such as futures or even asynchronous operations from other languages (eg. Rust). Reviewed By: andriigrynenko Differential Revision: D21118885 fbshipit-source-id: 0d6130b40fd04ef330800eae4feb93bb79f48105
Showing
folly/tracing/AsyncStack.cpp
0 → 100644
folly/tracing/AsyncStack.h
0 → 100644
Please register or sign in to comment