The Daffodil Command Line Interface (CLI) comes with a built-in interactive debugger that pauses parsing and allows for user inspection of the parsing state. To start Daffodil in debugger mode, provide the global --debug/-d option, for example:
./daffodil --debug parse --schema schema.dfdl.xsd input.dat
Enabling the debugger displays a (debug)
prompt, at which point various commands can be entered to control parsing and inspect Daffodil state. Below is the list of commands and their descriptions.
Commands
Command | Short Command | Arguments | Description | Example | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
break | b | <element_id> | Create a breakpoint, causing the debugger to stop when the element | break element.foo | ||||||||||||||||||||||||
clear | c | Clear the screen | clear | |||||||||||||||||||||||||
condition | cond | <breakpoint_id> <dfdl_expression> | Set a condition on a specified breakpoint. When a breakpoint | condition 1 dfdl:occursIndex() = 3 | ||||||||||||||||||||||||
continue | c | Continue parsing the input data until a breakpoint is encountered. At | continue | |||||||||||||||||||||||||
delete | d | <type> <id> | Remove a breakpoint or display. Valid values for <type> are "breakpoint" | delete breakpoint 1 delete display 1 | ||||||||||||||||||||||||
disable | dis | <type> <id> | Disable a breakpoint or display. Valid values for <type> are "breakpoint" | disable breakpoint 1 disable display 1 | ||||||||||||||||||||||||
display | di | <debugger command> | Execute a debugger command every time a debugger console is displayed | display info infoset | ||||||||||||||||||||||||
enable | e | <type> <id> | Enable a breakpoint or display. Valid values for <type> are "breakpoint" | enable breakpoint 1 enable display 1 | ||||||||||||||||||||||||
eval | ev | [type] <dfdl_expression> | Evaluate a DFDL expression. The [type] argument determines how to | eval number dfdl:occursIndex() | ||||||||||||||||||||||||
help | h | [<command>] | Display help. If a command is given, display help information specific | help help info | ||||||||||||||||||||||||
info | <item>... | Print various pieces of internal information to the console. The valid items are:
| info data infoset | |||||||||||||||||||||||||
quit | Immediately abort all processing. | quit | ||||||||||||||||||||||||||
set | <setting> <value> | Change a debugger setting. The settings are:
| set dataLength -1 set wrapLength 50 set removeHidden true | |||||||||||||||||||||||||
step | Perform a single parse action, pause parsing, and display a debugger console to the user | step | ||||||||||||||||||||||||||
undisplay | <display_id> | Remove a display created using the "display" command | undisplay 1 |