1. Overview
  2. Debugging workflow
  3. Debugging workflow: CI
  4. Basic interface
  5. Call stacks
  6. Explaining dataflow
  7. Multiprocess
  8. Search box
  9. Source files
  10. Condition and print expressions
  11. Toolbox
  12. Alerts
  13. Application logs
  14. Callees
  15. View operators
  16. Notebook
  17. Instruction execution
  18. Javascript
  19. Browser UI integration
  20. Screenshots
  21. Additional views
  22. GDB
  23. System debug info
  24. Compiler issues
  25. The Pernosco vision
  26. Related work

Explaining dataflow

Pernosco can trace dataflow backwards in time, from where a variable has an incorrect value back to where that variable was set — instantly. Clicking on a displayed value opens a "dataflow" view showing where the value came from. When the value set was simply copied from some other memory or register location, Pernosco displays the copy step and then automatically continues the explanation by following the source of the copy further backward in time. Helping the user skip over trivial copy steps accelerates the debugging process, especially for move-intensive code like Rust and some modern C++. On the other hand, some moves are important, e.g. "print" functions that copy data into output buffers, and Pernosco has heuristics to highlight those.

<< Call stacks Multiprocess >>