demo pernos.co on future growth branch

demo pernos.co on future growth branch

153 Lượt nghe
demo pernos.co on future growth branch
This is yet another video demonstrating use of pernos.co to debug a problem in the Rust Compiler. In this case, Felix uses pernos.co to work backwards from the diagnostic output for an Internal Compiler Error printed to the terminal, to the point where that diagnostic output was generated (i.e. the point where the problem was internally detected), and continuing backwards from there to the point where the internal compiler state was incorrectly constructed. Note: No bugs are actually fixed over the course of this video; its mostly a demonstration of how to use pernos.co as an investigative tool, rather than an instruction of how to make changes to rustc itself. 0:00 - Intro. What is the broader problem I'm investigating (but will not solve in this video) 2:30 - The panic (or rather, Internal Compiler Error aka ICE) I am observing 3:54 - The pernos.co trace of the rustc execution 5:32 - Clicking in stdout jumps to that point in execution! 6:19 - Dataflow tool: jumping to points where value is copied from place to place 8:19 - Local variables tool: view and click on state of local variables, rather than terminal output 9:25 - Clicking into middle of string buffer, just like any other state, tells you how that character got there 10:15 - We found the point where ICE message is created! 12:30 - The Notebook tool! (but, tool wasn't working as I expected for this spot in trace) 13:58 - Navigating from body of a lambda up to where its upvars were defined 14:19 - Current function executions (orange) vs ALL executions of a given line 15:06 - The Notebook tool is working at this point in execution trace! Lets show it off. 16:26 - Tracing backwards to where the offending value came from