AsyncG is a debugger for asynchronous executions in Node.js
Async Graph [1] is a new model to reason about the runtime behavior of applications and their interactions with the Node.js event loop. AsyncG is a tool to automatically build and analyze the Async Graph of a running application, and to identify bugs related to all sources of asynchronous execution in Node.js. AsyncG is built on top of NodeProf, is compatible with the latest ECMAScript language features, and can be (de)activated at runtime.
AsyncG outperforms other similar dynamic analysis tools thanks to the use of NodeProf, since 1) AsyncG supports async/await features while other similar tools do not, 2) the tool offers a more comprehensive coverage of the event loop thanks to its ability to instrument Node.js libraries, and 3) AsyncG can be applied in realistic server-side applications with limited overhead.
Software
AsyncG is an open-source project hosted on GitHub.
Key Publications
[1] Haiyang Sun, Daniele Bonetta, Filippo Schiavio, Walter Binder: Reasoning about the Node.js Event Loop using Async Graphs. CGO 2019: 61-72 [pdf]