--About Help Up/Down Select help topic. PageUp Page help text down. PageDn Page help text down. Esc Returns to debugger. --Keys Special debugger keys fall into the following categories: Function Keys Keys that execute debugger functions Window keys Keys that operate on the active window Others Keys for window navigation and sizing Other keys (typeable characters) are sent to the Command window and treated as input text. -- Function F1 Help F2 Zoom active window F3 Retype last command F4 View Application (User) screen F5 Go (Run application) F6 View Workareas screen F7 Run to cursor line F8 Step F9 Set breakpoint on cursor line F10 Trace -- Window Enter If input is pending in the Command window, will execute the command, regardless of which window is active. Otherwise, if the Monitor or Watch window is active, ENTER will inspect the selected window item. Up In Code window, moves cursor line up. In Command window, recalls previous command. In other windows, moves selected item up. Down In Code window, moves cursor line down. In Command window, recalls previous command. In other windows, moves selected item down. PageUp In Code window, pages source up. In Command window, does nothing. In other windows, pages item list up. PageDn In Code window, pages source down. In Command window, does nothing. In other windows, pages item list down. Ctrl PageUp In Code window, moves cursor line to top. of source. In Command window, does nothing. In other windows, selects first item on list. Ctrl PageDn In Code window, moves cursor line to bottom. of source. In Command window, does nothing In other windows, selects last item on list. Left In Code window, scrolls left 1 column. In Command window, moves cursor left. In other windows, does nothing Right In Code window, scrolls right 1 column. In Command window, moves cursor right. In other windows, does nothing. Home In Code window, scrolls hard left. In Command window, moves cursor to beginning of line. In other windows, does nothing. End In Code window, scrolls hard right. In Command window, moves cursor to end of line. In other windows, does nothing. Esc In Command window, clears command-line. In other windows, does nothing. -- Other TAB Next window SHIFT-TAB Previous window ALT-G Grow active window ALT-S Shrink active window ALT-U Move the border between Command and Code windows Up ALT-D Move the border between Command and Code windows Down ALT-X Exit --Windows The Debugger display consists of the following five windows: Command Window Accepts and displays debugger commands. Always open. Code Window Displays program source code. Always open. Watch Window Displays Watchpoints and Tracepoints, and inspects their values. Open when any Watchpoints or Tracepoints are defined. These are set and deleted via the Point menu. Monitor Window Displays monitored variables, and inspects their values. Open when any classes of variables are being monitored, via commands in the Monitor menu. CallStack Window Displays program call stack. Opened via the View:CallStack menu option. If this window is active, the Code, Watch and Monitor windows will display information pertaining to the selected call on the CallStack. One debugger window is active at a time. The active window is displayed with a highlighted border. TAB and SHIFT-TAB navigate among open windows. The Window menu contains options to Move, Size, Zoom and Iconize the active window. After a long session of moving and sizing, the Window:Tile menu option will restore the windows to their original size and location. -- Command The Command window accepts debugger commands as line input, and displays the response from an executed command, if any. Commands are entered simply by typing in the command text, then pressing ENTER. Commands may be entered and executed while any window is active. However, the entry cursor is only visible within the Command window when it is active. When the Command window is active, the UP and DOWN arrow keys can be used to recall previous commands. -- Code The Code window displays Harbour source code for the program being debugged. What file the Code window displays may be controlled in the following ways: 1. By default, the Code window will contain the line of Harbour code currently being executed. 2. If the CallStack window is open, the code being viewed is that of the selected call in the CallStack window. NOTE: By default this will be the same code as 1, but code for the other calls may be viewed by making the CallStack window active and using UP and DOWN to traverse the call stack. 3. A specific file may be viewed by issuing a VIEW command, or selecting the File:View menu option. If the Code window contains the line of Harbour code currently being executed, that line will be highlighted. Any lines which have Breakpoints set on them will also be marked. In addition to standard navigation keys, you can search the viewed file for a specific string, or go to a particular line within it, using options found in the Locate menu. -- Watch The Watch window displays Watchpoint and Tracepoint expressions, and their current values. Watchpoints and Tracepoints may be defined and deleted via options on the Point menu. You can edit a Watchpoint or Tracepoint expression by selecting it in the Watch window and pressing CTRL-ENTER. If the Watch window is active, pressing ENTER will inspect the value of the selected expression. The navigation keys described in 'Window Keys' may be used to change the selected item. If the CallStack window is active, the Watch window will display the values for Watchpoints and Tracepoints at the activation level represented by the selected call in the CallStack window. -- Monitor The Monitor window displays monitored variables. Classes of variables may be monitored via options in the Monitor menu. If the Monitor window is active, pressing ENTER will inspect the value of the selected variable. The navigation keys described in 'Window Keys' may be used to change the selected item. If the CallStack window is active, the Monitor window will display the values of variables at the point of the activation level represented by the selected call in the CallStack window. -- CallStack The CallStack window displays the program's call stack. It is opened and closed via the View:CallStack menu option. By default, the selected call within the CallStack window is the top one -- i.e., the call currently being executed. When the CallStack window is active, the other call levels may be selected using the navigation keys described in 'Window Keys'. All other windows except the Command window are synchronized with the CallStack window. The code viewed in the Code window, the values of Watchpoints and Tracepoints in the Watch window, and the values of variables in the Monitor window are all in the context of the activation level selected in the CallStack window. --Menus The debugger menus contain various debugger functions. Each menu may be accessed at any time by pressing the ALT key, and the first letter in the menu's name. Once in a menu, the UP and DOWN arrow keys navigate the list of options. An option may be selected by pressing ENTER, or by typing the first uppercase letter within the name of the desired option. Some menu options toggle a debugger setting. These options will have a checkmark displayed to their left if the setting they refer to is currently ON. Each menu option is also available as a command, made up of the Menu name, followed by the first word of the option name. For instance, the View:CallStack menu option may also be accessed via the command: View Call Words within these commands may be shortened in most cases to one letter. For more information on this class of commands, see the 'Commands' section of this help. -- File Options: Open... Specify a file to be opened in the Code window OS Access Shell to the OS environment Exit Alt-X Exit the debugger -- Locate Facilites for navigating the file in the Code window Options: Find... Search for a specified string, from the beginning of the file onward. Next Search for the next occurrence of the Find string, from the cursor line onward. Prev Search for the previous occurrence of the Find string, from the cursor line backward. Goto Line... Go to a specific line in the file being viewed. Case Sensitivity Toggles case sensitivity in searches. Default is OFF. -- View Options: Sets View Set status information Work Areas F6 View Database status information App. screen F4 Displays application screen, until key is pressed CallStack Toggles the CallStack window. Default is OFF -- Run Options: Restart Terminate program and re-execute, leaving debugger settings in place Animate Execute program in Animate mode Step F8 Execute one line of program code Trace F10 Trace over function call in program code Go F5 Execute program to Cursor F7 Execute program, breaking at the current cursor line in Code window Next routine Ctrl-F5 Execute program, breaking at line 1 of the next procedure or function call., sPeed... Set step speed for Animate mode execution -- Point Options: Watchpoint... Add Watchpoint. A Watchpoint is an expression which the debugger tracks during program execution -- the current value of a Watchpoint is displayed in the Watch window during debugging. A Watchpoint may be any valid Harbour expression, i.e.: s // variable a[ n ] // array element g:buffer // object instance variable At( s, t ) // return value of function call ValType( s ) == 'C' // value of expression Tracepoint... Add Tracepoint. A Tracepoint is similar to a Watchpoint, with the additional property that if the value of a Tracepoint expression changes, the debugger will be invoked as if a Breakpoint had been hit. Breakpoint F9 Set Breakpoint on current cursor line in Code window Delete Delete Tracepoint or Watchpoint. -- Monitor Options: Public Monitor Public variables. Private Monitor Private variables. Local Monitor Local variables. Static Monitor Static variables. Global Monitor Global variables. All Monitor All variables. Sort Toggles whether monitored variables are sorted by name. Default is OFF. -- Options Options: Preprocessed code Toggles the display of preprocessed code (from PPO file) within the Code window. Default is OFF. Line numbers Toggles the display of line numbers in the Code window. Default is OFF. Exchange screens Toggles whether debugger screen is swapped with application screen during debugger execution. Default is ON. Swap on Input Toggles whether debugger screen is swapped with application screen when the program being debugged is waiting for input. Default is ON. This setting is only meaningful when the Exchange Screens setting is OFF. Codeblock Trace Toggles whether the debugger will trace into code blocks when tracing (i.e., when in Trace mode). Defaults to ON. Menu Bar Toggles display of the debugger menu bar. Default is ON. mono Display Toggles display between monochrome and color. Default is OFF. Colors... Inspects debugger colors. Tab width... Set tab width in Code window. Default is 4. pAth for Files... Specify search path for source files. The debugger will use this path to search for files, if not found in the current directory. NOTE: If not found in the debugger path, the directories specified in the environment's PATH will be searched. Save Settings Save debugger settings to a script file. Restore Settings Restore debugger settings from a previously saved script file. -- Window Options: Next Tab Make next window active. Prev Sh-Tab Make previous window active. Move Move active window. UP, DOWN, LEFT, RIGHT, PGUP, PGDN, HOME, END move ENTER finishes, While Moving, top left corner of window is marked. Size Size active window. UP, DOWN, LEFT, RIGHT, PGUP, PGDN, HOME, END size ENTER finishes, While Sizing, bottom right corner of window is marked. Zoom F2 Toggles whether active window is Zoomed. When Zoomed, window will fill entire display area. Iconize Toggles whether active window is Iconized. When Iconized, window will be one row high and a few columns wide. Tile Restore all windows to original size and position. --Commands There are two sets of debugger commands: 1. Menu option commands. These commands are formed from the menu name, followed by the (first word of) the option name. For instance, the Monitor:Public menu option may be invoked via the command: Monitor Public These commands may be abbreviated down to one letter per word. However in some cases a second letter will be required in the second word, as in the case of Monitor Private: M P // invokes Monitor Public M Pr // invokes Monitor Private 2. Other commands. Listed below. ? Display the value of a variable or expression. ?? Inspect the value of a variable or expression. ANIMATE Execute application in Animate Mode. BP [ [ ]]|[] BP Toggle breakpoint at current line in current source file. BP Toggle breakpoint at in current source file. BP Toggle breakpoint at in source file. BP Toggle breakpoint on function. CALLSTACK on|OFF Toggle display of CallStack window DELETE ALL [WP|TP|BP] DELETE WP|TP|BP Delete all or particular Watchpoint, Tracepoint or Breakpoint. DOS Visit the operating system. FIND Search currently viewed file for specified character string. GO Execute application in Run Mode. GOTO Move cursor to specified line in currently viewed file. HELP Get advice in the form of the Help window. INPUT Read commands from specified Script File. LIST BP|WP|TP List Breakpoints, Watchpoints or Tracepoints in the Command Window. NEXT Search for next occurrence of FIND string. NUM ON|off Toggle display of line numbers in Code window. OUTPUT View application screen. PREV Search for previous occurrence of FIND string. QUIT Quit. RESTART Restart application RESUME Resume viewing the currently executing program code in the Code Window, after VIEWing another file. SPEED Set Animate mode step speed. designates the number of tenths of a second to delay. must be greater than or equal to 0. STEP Execute one line of program code. TP Establish as a Tracepoint. may be a variable or expression. VIEW View specified file in Code window. WP Establish as a Watchpoint. may be a variable or expression. --Script files Script files contain debugger commands, in the same form they would take as input in the Command window. By default, script files use the extension CLD, as in 'myscript.cld'. Creating a script file: A script file containing all the debugger's current settings may be created via the Options:Save menu option. A script file may also be written by hand, in a text editor. Reading a script file: A script file may be read into the debugger at any time using the Options:Restore menu option. The extension '.cld' will be assumed if no extension is supplied. When reading a script file, the debugger will look for the file in the current directory first. If the script is not found there, the debugger will search all directories in the PATH environment variable. init.cld: On startup (or, if it is linked into a program, when it is first invoked), the debugger will look for a script file called init.cld, in the current directory and then, if not found, in the directories specified by the PATH environment variable. If init.cld is found, the debugger will read it automatically. It is useful to place general preferences in init.cld -- specifying colors, turning on the CallStack window, and so on.