Watching Data Values with Debuggers

Watching Data in the Stateflow® Debugger

The Browse Data pull-down menu in the Stateflow® Debugger lets you display selected data in the bottom output display pane of the Stateflow Debugger during simulation, after a breakpoint is reached. The Debugger can filter the display between:

The following example displays All Data (All Charts) for two executing charts, Chart1 and Chart2, in a simulating model. Each chart has its own data value: x1 and x2, respectively.

The data for each chart is headed by its owning object. Each displayed object (chart, state, data, and so on) is accompanied by a unique identifier in the form (#id(xx:yy:zz)), which is used in linking the listed object to its appearance in the Stateflow chart.

Watching Stateflow® Data in the MATLAB® Command Window

When simulation reaches a breakpoint, you can view the values of Stateflow data in the MATLAB® Command Window. In the following example, a default transition calls an Embedded MATLAB™ function with a breakpoint set at the last executable line of the function:

When simulation reaches the breakpoint, you can display Stateflow data in the MATLAB Command Window. Assuming you want to watch the data variable vals from the previous example, follow these steps:

  1. At the MATLAB prompt, press Enter.

    A debug>> prompt appears.

  2. Enter the MATLAB command whos to view the data that is visible at the current scope.

    debug>> whos
      Name        Size               Bytes  Class       
                                                        
      vals        4x1                   32  double array
      len         1x1                    8  double array
      stdev       1x1                    8  double array
      mean        1x1                    8  double array
      invals      4x1                   32  double array
    
    Grand total is 5 data in scope
    
    debug>>
    
  3. Enter the name of data array vals at the prompt to display its value.

    debug>> vals
     
    	vals =
    
         2
         3
         4
         5
    
    debug>> 
    
  4. Enter vals(2:3) to view the values of a submatrix of the array.

    debug>> vals (2:3)
    
    ans =
    
         3
         4
    
    debug>>

The Command Line Debugger provides these commands during simulation:

Command

Description

dbstep

Advance to next executable line of code.

dbstep [in/out]

When debugging Embedded MATLAB functions:
  • dbstep [in] advances to the next executable line of code. If that line contains a call to another function, execution continues to the first executable line of the function.

  • dbstep [out] executes the rest of the function and stops just after leaving the function.

dbcont

Continue execution to next breakpoint.

dbquit (ctrl-c)

Stop simulation of the model. Press Enter after this command to return to the command prompt.

help

Display help for command-line debugging.

print var

...or...

var

Display the value of the variable var.

var (i)Display the value of the ith element of the vector or matrix var.
var (i:j)Display the value of a submatrix of the vector or matrix var.

save

Saves all variables to the specified file. Follows the syntax of the MATLAB save command. To retrieve variables in the MATLAB base workspace, use the load command after simulation has ended.

whos

Display the size and class (type) of all variables in the scope of the halted Embedded MATLAB function.

You can issue any other MATLAB command at the debug>> prompt but the results are executed in the Stateflow workspace. For example, you can issue the MATLAB command plot(var) to plot the values of the variable var.

To issue a command in the MATLAB base workspace at the debug>> prompt, use the evalin command with the first argument 'base' followed by the second argument command string, for example, evalin('base','whos').

  


 © 1984-2008- The MathWorks, Inc.    -   Site Help   -   Patents   -   Trademarks   -   Privacy Policy   -   Preventing Piracy   -   RSS