The Debug menu controls functions of the Debugger which is used to find and fix issues with 010 Editor Templates and Scripts. This section lists the menu options for the Debug menu:
- Debugging Enabled - Indicates whether debugging is turned on for the application. If debugging is on a checkmark will appear beside this menu option and if off an 'X' will appear. Toggle whether debugging is turned on by clicking the menu option. When debugging is off, execution will not pause at any breakpoints and many of the options in the Debug menu will be disabled. Also, when turned off the application will not ask to start the debugger if any errors occur in a Script or Template.
- Start Debugging - Starts execution of the currently selected 010 Editor Script or Template. This option is only available when a Script or Template is selected and not when a data file is selected. Execution will pause at any breakpoints that have been set in the file. Note this option has the same effect as using 'Scripts > Run Script' or 'Templates > Run Template' when debugging is turned on.
- Continue - When the debugger has paused at a line in a Script or Template, clicking this option continues execution from the current line. Note this option is only visible when execution is paused and is identical to using 'Scripts > Continue Script or Template' or 'Templates > Continue Script or Template'.
- Pause - Pause execution of a currently running 010 Editor Script or Template and starts the debugger, placing the cursor at the next line of the program to be run. The current line is marked with a yellow arrow in the Text Editor.
- Stop Script/Template - If a Script or Template is currently being run or is paused, this menu option stops execution of the Script or Template. Scripts or Templates which are taking too long to execute can be cancelled with this option.
- Step Over - Executes any statements on the current debugger line and advances to the next line in the Script or Template. If the current line contains a function or struct, the whole function or struct will be run without stopping the debugger.
- Step Into - This menu option has two uses. If the current Script or Template has not been started then clicking this option will start the Script or Template and pause execution at the first line of the program that can be run. If program execution is paused then this option will execute any statements on the current debugger line and advance to the next line in the Script or Template. If the current line contains a function or struct, the debugger will pause at the first line of the function or struct. Note the debugger cannot currently step into functions located inside a DLL.
- Step Out - If program execution is paused at a line which is inside a function or struct, this menu option executes the rest of the lines inside the function or struct and stops at the next line which is outside the function or struct. If the program is paused at a line which is not inside a function or struct then the rest of the Script or Template is executed.
- Toggle Breakpoint - Marks that the debugger should stop at the current line of the selected Script or Template by creating a breakpoint. If the current line already has a breakpoint then the breakpoint is deleted. Breakpoints are indicated by a red arrow along the left-hand column of a Script or Template and breakpoints can also be toggled by clicking the left-hand column of a Script or Template with the mouse.
- View Breakpoints - Displays the Breakpoints tab which contains a list of all the breakpoints in the current Script or Template. The Breakpoints tab is located in a tab group with the Inspector tabs and may occasionally be hidden underneath the Floating Tab Group. Breakpoints may be viewed, added or deleted using the Breakpoints tab.
- Delete All Breakpoints - Removes all breakpoints in all files. Note that breakpoints are stored to disk and reloaded when 010 Editor is restarted.
- Quick Watch - Displays the Quick Watch dialog which can be used to evaluate expressions or view the value of variables in the current Script or Template. The Quick Watch dialog can only be opened when execution is paused at a line in a Script or Template.
- View Watches - Shows the Watch tab which can be used to evaluate a set of expressions every time program execution pauses at a line in the Script or Template. The Watch tab exists in the Inspector tab group which sometimes may be hidden by the Floating Tab Group. See Watches for more information.
- View Call Stack - Displays the Call Stack tab which exists in a tab group with the other Inspector tabs. When a Script or Template is paused at a line which is inside a function or struct, the Call Stack shows which functions or structs were called to reach the current line. See Using the Call Stack for more information.