Debugging

If you need information on how to analyze your model before running it, please see the analysis help page. This section deals with testing your model while it is running.

The data inspector

The data inspector provides insight in your model while it’s running. You can see values of formulas, questions, datasets and more. Furthermore, you can see how your model behaves as you go through it. This way, you can check what different answers do and how it affects the outcome. You can open the data inspector while running a model via File > Data Inspector or by pressing [F11]:

The data inspector in action
The data inspector in action

The data inspector is divided into three panels:

The left panel contains all nodes up until the current node. They are shown in the form graphname[iteration].nodename. Except the main graph, which is always shown as main.nodename, because the main graph always has just one iteration. You can select a node to open up the data and source code panels.

Clicking one of the nodes opens the data panel on the top right. This shows a table that contains all variables (data column), their current values (value column) and their status (status column). Clicking on a variable in the data column opens a pop-up window where one can inspect its value more closely. This pop-up window also offers a tree view for datasets on the tree tab:

Inspecting a data set with the data inspector
Inspecting a data set with the data inspector

The values in the status column convey how the variables got their current value. De different status-values are;

Not yet in path
The variables have not been used in any way.
Not in path, but has been
The variables have had a different value than ‘not yet in path’ but the user went back.
Calculated value
The value came from a calculation of some sort (e.g. x := 1)
Value from interface, did not stop
The variable is used in an interface (e.g. a question) and the program stopped to wait for user-input.
Value from interface, stopped
The variable is used in an interface (e.g. a database-interface) but it did not stop, the user never noticed this interface.
Initialized
The variable has an initial value from the function initvar, or through the question form in the Studio.

The bottom right panel contains the source code for the node (depending on your license). This can be useful to check conditions or other details not visible in the data panel.

Logging

If you want detailed on what the Berkeley Runner is doing, you can use the log. When in the Runnerm go to File > Log or press [F10]. The log does not show a lot if detailed logging is off (see settings). The logging is rather technical, and you need a very good understanding of how the Runner works. Error messages though, which are shown without detailed logging, can be interesting. The Runner tries to give important and error messages if things seem to go wrong.