Difference between revisions of "Debugging and Testing Techniques"
Yvonnemilne (Talk | contribs) |
Yvonnemilne (Talk | contribs) (→Using the debug() Function) |
||
Line 7: | Line 7: | ||
</pre> | </pre> | ||
− | The text file is named ''debug'' + process ID + ''.txt''. A copy of the latest debug file can also be found in the file ''debug.txt''. The setting [[SET DEBUG|set debug]] enables (on) or disables (off) the logging of the messages. | + | The text file is named '''debug'' + ''process ID'' + '''.txt'''. A copy of the latest debug file can also be found in the file '''debug.txt'''. The setting [[SET DEBUG|set debug]] enables (on) or disables (off) the logging of the messages. |
<code lang="recital"> | <code lang="recital"> |
Revision as of 12:56, 27 July 2010
Contents
Debugging and Testing Techniques
Using the debug() Function
The debug() function allows debugging information messages to be written to a text file in the currently set DB_DEBUGDIR directory.
logical = debug(message as character)
The text file is named debug + process ID + .txt'. A copy of the latest debug file can also be found in the file debug.txt. The setting set debug enables (on) or disables (off) the logging of the messages.
set debug on // app1.prg debug("program started by: " + user()) //... debug("option chosen: " + m_opt)
Using the assert Command
The assert command is used for program debugging purposes: to display a message box with options when a condition evaluates to False (.F.).
assert <condition as logical> [message <message as character>]
The message box has four buttons, offering the following options:
Button | Option |
---|---|
Debug | Suspends program execution and starts the Debugger. The Debug option is only available if the program is being run uncompiled. |
Cancel | Stops program execution. |
Ignore | Continues program execution. |
Ignore All | Continues program execution and issues set asserts off, causing subsequent asserts to be ignored. |
Dumping Variables to an External Text File
Using the Workbench Debugger
The debug command displays a pop-up debugger allowing the specified program to be monitored during execution.
debug <filename as character>
The debugger consists of four lines of information about the current program and eighteen push buttons. Program information consists of the following lines:
OPERATION | Displays one of the following DEBUG operations: STEP, BREAKPOINT or WATCHPOINT. |
---|---|
PROGRAM | Displays the name of the current procedure or program. |
LINE# | Displays the current line number. |
COMMAND | Displays the next program line to be executed. |
The eighteen push buttons are used to access information about the current environment and to specify memory variables and conditions to monitor during program execution. The pop-up debugger provides the following push buttons:
BUTTON | EFFECT |
---|---|
Step | Step through a line at a time. |
Suspend | Suspend the program to go to the interactive prompt, RESUME to restart. |
Cancel | Cancel program execution and create error.mem. |
Memory | Display currently declared memory variables. |
Status | Display currently open tables (and their indexes, current record, etc.). |
Calls | Show program/procedure call stack. |
Watch | Set a watch point. When Executing the program, execution will stop when the specified memory variable's value changes. |
Break | Set a break point. When Executing the program, execution will stop when the specified condition becomes true. |
History | Show command history trace. |
Execute | Run program without stepping until watch point or break point reached. |
Wpclear | Clear all watch points. |
Bpclear | Clear all break points. |
Bpmark | Mark the current line as a break point. |
Bpdrop | Clear a particular break point. |
Wpdrop | Clear a particular watch point. |
Bpshow | Show all break points. |
Wpshow | Show all watch points. |
Quit | Exit the program and debugger. |
Use the [UP], [DOWN], [LEFT], and [RIGHT] arrow keys to navigate the push buttons, and press the [RETURN] key to select a button. You may also type the accelerator key to select a button. The accelerator keys are the highlighted letters in the label of each push button.