You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 10 Next »

The Daffodil Command Line Interface (CLI) comes with a built-in interactive debugger that pauses parsing and allows for user inspection current parsing state. Providing the global --debug/-d option drops the user to a prompt, at which point various commands can be entered to control parsing and inspect state. Below are the commands.

Commands

CommandArgumentsDescriptionExample
break
<element_id>
Create a breakpoint, causing the debugger to stop when the element with the <element_id> name is created
break element.foo
clear
 Clear the screen
clear
condition
<breakpoint_id> <dfdl_expression>
Set a condition on a specified breakpoint. When a break point is encountered, the debugger only pauses if the DFDL expression evaluates to true
condition 1 dfdl:occursIndex() = 3
continue
 Continue parsing the input data until a breakpoint is encountered. At which point, pause parsing and display a debugger console to the user
continue
delete
<breakpoint_id>
Delete a specified breakpoint.
delete 1
disable
<type> <id>
Disable a specified breakpoint or display. To disable a breakpoint, set <type> to "breakpoint". To disable a display, set <type> to "display".
disable breakpoint 1
disable display 1
display
<debugger command>
Execute a debugger command every time a debugger console is displayed to the user
display info infoset
enable
<type> <id>
Enable a specified breakpoint or display. To enable a breakpoint, set <type> to "breakpoint". To enable a display, set <type> to "display".
enable breakpoint 1
enable display 1
eval
[type] <dfdl_expression>
Evaluate a DFDL expression. The <type> argument determines how to display the result of the dfdl_expression. <type> may be "string", "number", "boolean", or "node". If <type> is not give, then "node" is assumed.
eval number dfdl:occursIndex()
help
[<command>]
Display help. If a command is given, display specific help for that command and its subcommands.
help
help info
info
<item>...

Print various pieces of internal information to the console. The valid items are:

itemdescription
arrayIndexcurrent index of the element in an array
bitLimitcurrent bit limit
bitPositioncurrent bit position in the data
breakpointslist of breakpoints
childIndexcurrent child index
datainput data
descriminatorwhether or not a descriminator is set
displayslist of displays
groupIndexcurrent group index
infosetcurrent infoset
occursCountoccurs count
pathpath in the schema, using schema component designator
info data infoset
set
<setting> <value>

Change a debugger setting. The settings are:

SettingTypeDescription
dataLengthintegernumber of bytes to display when displaying input data. If negative, display all input data.
infosetLinesintegernumber of lines of the infoset to display. This displays the last X number of lines. If negative, display the entire infoset
removeHiddenbooleanwhether or not to remove hidden elements (via dfdl:hiddenGroupRef) when displaying the infoset
wrapLengthintegernumber of character at which to wrap data or infoset when printed to the console
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
  • No labels