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

View operators

Each Pernosco view is an independent timeline of events. The current focus is visually highlighted within each view, and the events in a view are ordered by time from top to bottom, but there is no visual indication of the relative ordering of events in different views. Sometimes it would be useful to have a timeline showing the relative order of different kinds of events (e.g. garbage collector invocations and console output).

We overcome this limitation by allowing multiple views to be combined into a single view. Not all combinations are supported, but for those that are, users can merge views by simply dragging one into another. The new view contains the union of the events, all ordered by time.

This is a very simple "union" operator on views. One can imagine more complex operators, and even explicit query languages, but we don't have enough user experience to pursue that yet.