Causeway

From Erights

(Difference between revisions)
Jump to: navigation, search
Line 3: Line 3:
Causeway, an open source distributed debugger written in '''''E''''', lets you browse the causal graph of events in a distributed computation.
Causeway, an open source distributed debugger written in '''''E''''', lets you browse the causal graph of events in a distributed computation.
-
Causeway provides a post-mortem view, gathered from trace files written by the processes you wish to debug. (We explain below how to enable this tracing.) In the upper left pane, each tab represents the full order of events recorded by each process. This gives a "''follow the process''" view common to conventional distributed debuggers. In the upper right pane, we see an alternative "''follow the conversation''" outline view, in which each event expands to show the events it causes. Causeway assigns a unique color per vat. As we see, causality flows back and forth between the vats.  
+
Causeway provides a post-mortem view, gathered from trace files written by the processes you wish to debug. (We explain below how to enable this tracing.) In the upper left pane, each tab represents the full order of events recorded by each process. This gives a "''follow the process''" view common to conventional distributed debuggers. In the upper right pane, we see an alternative "''follow the conversation''" outline view, in which each event expands to show the events it causes. Causeway assigns a unique color per vat. As we see, causality flows back and forth between the vats.  
<!-- images/cw-screenshot.png goes here -->
<!-- images/cw-screenshot.png goes here -->
Line 22: Line 22:
=== Generating causality traces ===
=== Generating causality traces ===
-
'''''E''''' supports tracing and there are many options for turning on various kinds of traces, generated at different levels of detail. Tracing can be turned on using command line properties, or by explicit actions within the programs. The example programs "seller.e" and "buyer.e" turn causality tracing on and off in order to bracket just that portion of their computation that would be interesting to view in Causeway. We recommend this technique to avoid being swamped in irrelevant detail.
+
'''''E''''' supports tracing and there are many options for turning on various kinds of traces, generated at different levels of detail. Tracing can be turned on using command line properties, or by explicit actions within the programs. The example programs &quot;seller.e&quot; and &quot;buyer.e&quot; turn causality tracing on and off in order to bracket just that portion of their computation that would be interesting to view in Causeway. We recommend this technique to avoid being swamped in irrelevant detail.
-
In the code below, the trace begins with the eventual send to x and ends eventually, sometime after answer is resolved. The trace includes the message sends (effects) caused by x <- question() (the cause) and the message sends caused by these effects, and so on.
+
In the code below, the trace begins with the eventual send to x and ends eventually, sometime after answer is resolved. The trace includes the message sends (effects) caused by x &lt;- question() (the cause) and the message sends caused by these effects, and so on.

Revision as of 20:39, 10 July 2008

Causeway

Causeway, an open source distributed debugger written in E, lets you browse the causal graph of events in a distributed computation.

Causeway provides a post-mortem view, gathered from trace files written by the processes you wish to debug. (We explain below how to enable this tracing.) In the upper left pane, each tab represents the full order of events recorded by each process. This gives a "follow the process" view common to conventional distributed debuggers. In the upper right pane, we see an alternative "follow the conversation" outline view, in which each event expands to show the events it causes. Causeway assigns a unique color per vat. As we see, causality flows back and forth between the vats.


Causeway presents several different views of the causal relations. The views are coordinated such that, selecting an item in one view causes corresponding selections in other views.

  • Causality Tree View This tree view contains the full graph built from the trace files.
  • Pruned Causality Tree View This tree view is built by walking the full graph and applying a relevance function to each causal relation. The relations are either clipped, skipped, or kept, depending on how relevant, or interesting, they seem. Tree pruning is guided by relevance functions and filters. Currently, default options are selected, but we expect to support user-defined functions and filters in a future release.
  • Full-order View The view to the left of the tree view lists the events from a single trace file, in full order. This is equivalent to the full order of events sent within a single process.
  • Stack Frame View This view is not quite what you would expect. For a selected message in the tree view, the stack shows the state at the time the message was sent, not received. It's the stack of the cause, not the effect. Selecting an item in the stack view shows the corresponding source code.
  • Source Code View This view shows the filename and E source code, if available.

Generating causality traces

E supports tracing and there are many options for turning on various kinds of traces, generated at different levels of detail. Tracing can be turned on using command line properties, or by explicit actions within the programs. The example programs "seller.e" and "buyer.e" turn causality tracing on and off in order to bracket just that portion of their computation that would be interesting to view in Causeway. We recommend this technique to avoid being swamped in irrelevant detail.

In the code below, the trace begins with the eventual send to x and ends eventually, sometime after answer is resolved. The trace includes the message sends (effects) caused by x <- question() (the cause) and the message sends caused by these effects, and so on.

Personal tools
more tools