An attempt of dumping the async exectuion tree of a Rust program only using debuginfo. The results aren't 100% accurate.
By the way, it's not actually a tree, it's a DAG.
install pyvis and ddbug and start from draw.ipynb
.
A pretty stupid one. It simply parses the text output of ddbug and finds the async-related structs, adding the __awaitee
field as childrens. This could obviously be done by directly parsing the debuginfo, but I'm too lazy to do that.