home *** CD-ROM | disk | FTP | other *** search
- /*******************************************************************/
- TURBO DEBUGGER FOR WINDOWS & TOOLS 2.5
- MANUAL REFERENCE
-
-
- CONTENTS:
- 1. Turbo Debugger for Windows (TDW) 2.5, Microsoft Windows Debugging
- Features
- 2. Mouse Support in TDW 2.5
- 3. TDW 2.5: Answers to Common Questions
-
-
- Turbo Debugger for Windows (TDW) 2.5, MICROSOFT WINDOWS DEBUGGING FEATURES
- --------------------------------------------------------------------------
- 1. View|Windows Messages
-
- a. If you set up View|Windows Messages to display messages for
- more than one procedure or handle or both, do not log all
- messages. Instead, log specific messages for each procedure or
- handle. If you log all messages, the system might hang, in
- which case you will have to reboot to continue. This behavior
- is due to the large number of messages being transferred
- between Windows and TDW.
-
- b. When setting a break on the Mouse class of messages, note that
- a "mouse down" message must be followed by a "mouse up" message
- before the keyboard will become active again. When you return
- to the application, you might have to press the mouse button
- several times to get Windows to receive a "mouse up" message.
- You'll know Windows has received the message when you see it in the
- bottom pane of the Windows Message window after the program breaks.
-
- c. If you enter a handle name but indicate that it's a
- procedure, TDW will accept your input and will not complain.
- However, when you run your program, TDW will not log any
- messages. If TDW is not logging messages when you think you've
- set a handle, check the Add Window dialog box of the top left pane of
- the Windows Messages window to see if you've pressed the Handle button.
-
- 2. View|Module
-
- a. The Debug Startup radio buttons are used for DLLs only. To
- debug EXE startup, begin TDW with the Assembler-mode Startup
- command-line option (-l).
-
- b. When a program loaded into TDW is reset, the Load symbols
- radio buttons default to YES for all DLLs and applications
- with symbols, even if you specified NO for a given DLL or
- application prior to resetting the program.
-
-
- MOUSE SUPPORT IN TDW 2.5
- ------------------------
- Turbo Debugger provides mouse support that allows you to manipulate
- elements within the user interface. The following lists mouse-
- related terms to help you become accustomed to using Turbo
- Debugger's mouse support.
-
- 1. When the mouse driver is disabled for Windows, it will be disabled
- for TDW as well. Starting TDW with the mouse support option
- (-p) has no effect unless you enable the Windows mouse driver.
-
- 2. If you have a mouse driver installed by default, the Debugger,
- and installation utilities will try to use your mouse. If you
- do not wish to use your mouse during a debugging session, you
- can use the command-line switch '-p-' to turn the mouse off.
- You can also set this option in TDWINST in the Options\Input &
- Prompting dialog box.
-
- 3. Clicking and Dragging
-
- Most mice provide two or three buttons that allow for various
- functions inside an application. In Turbo Debugger you can,
- among other things, use the left mouse button to select
- options, move items around on the screen, and set breakpoints.
- The right mouse button has some of the same functionality as
- the left mouse button, but you can also open local menus within
- windows using this button. Double clicking the mouse on options
- in a list will select that item. For instance, in the File|Open
- dialog box you can highlight a file by clicking the mouse once
- on the file name. You can load the file by double clicking on
- the name.
-
- 4. The commands shown at the bottom of the screen, like F1-Help,
- can also be selected using the mouse. Dragging the mouse
- consists of depressing the mouse button and moving the mouse
- cursor to a new location.
-
- 5. Mouse drivers
-
- Your mouse driver is the application that you install to make
- your mouse active inside Turbo Debugger and other programs.
- Most mouse drivers will work with Turbo Debugger but may have
- to be updated to a newer version if you are having problems
- using an older version. If you have problems with the mouse
- once you have loaded TDW or TDWINST, you might try using the
- Display Swap option that can be specified either in TDWINST or
- on the command-line with the -ds switch. Consult your mouse
- manual to ensure proper use of the mouse and its driver. Early
- versions of mouse drivers don't support screen display modes
- larger than 80 columns by 24 lines. As a result, your mouse
- driver might not work correctly when you use Turbo Debugger's
- enhanced display modes EGA 80x43, VGA 80x50, or EGA/VGA
- graphics modes.
-
- 6. Scroll bars
-
- Scroll bars, located at the right and bottom of all windows,
- allow you to specify a new position within a window by clicking
- the mouse on an indicator on the scroll bar and dragging it to
- a new location. Arrows located at either end of a scroll bar
- also allow you to scroll through the window when you click and
- hold the mouse on the arrow heads.
-
- 7. Icons
-
- An icon is a window that has been shrunk down to a smaller
- representation of the window. These icons can be moved with the
- mouse by clicking on the border of the icon and dragging it to
- a new location. Arrows located at the top right of each
- viewer allow you to zoom and unzoom the viewer when you click
- the mouse on the arrows. When you iconize a window, it is
- stored at the bottom right side of the screen. If any other
- windows are currently showing at this position the icon will be
- put behind that window. The global Window menu allows you to
- pick from a list of currently open windows. This will also take
- you to an iconized window.
-
- 8. Resize box
-
- The resize box is located at the bottom right of each window.
- You can click the mouse on the box and drag the mouse to resize
- the viewer. Using the mouse, you can also resize the viewer by
- clicking the mouse on the right border of any window and
- dragging it. Windows and inspectors can be moved using the
- mouse by clicking on the top and left borders and dragging the
- window to a new location. Double clicking the mouse on the top
- border is a short cut to zooming/unzooming the current window.
-
- 9. Dialog boxes
-
- Dialog boxes allow you to select options, specify files to save
- or restore, and choose different settings. You can click the
- mouse to make prompts or panes within the dialog box active.
- Help for the current dialog box is available in by clicking on
- the Help button in the box.
-
- 10. Close buttons
-
- A Close button is located at the top left of all windows and
- dialog boxes. It lets you close the current window or dialog
- box when you click the mouse on it. If you have entered any
- information into a dialog box and you use the Close button to
- close it, the settings you specified in the dialog box will not
- be saved. This is the same as clicking the mouse on the Cancel
- button inside a dialog box. You must select the OK button in
- dialog boxes in order to save these settings.
-
- 11. When you're debugging a Windows application that uses the mouse
- and you reset the application and then run the program, it won't
- accept mouse clicks until you make a keyboard entry.
-
-
- TDW 2.5: ANSWERS TO COMMON QUESTIONS
- -------------------------------------
- Below is a list of the most commonly asked questions about Turbo
- Debugger for Windows (TDW).
-
- 1. Are there any syntactic or parsing differences between Turbo
- Debugger's Pascal expression evaluation and Turbo Pascal's?
-
- a. Turbo Debugger does not support expressions for set
- constructors:
-
- OK: [4..7]
-
- BAD: [myvar1..myvar2] [3+4..7+8]
-
- b. You can't pass constant-string arguments when evaluating
- functions or procedures.
-
- OK: MyFunc(123) MyFunc(StringVariable)
-
- BAD: MyFunc('Constant')
-
- MyFunc(StringConstant), where StringConstant is
- defined with a "const" declaration and is not a
- typed constant.
-
- c. You can't evaluate procedures or functions that have
- structure VALUE parameters. You can evaluate procedures or
- functions that have structure VARIABLE parameters, though.
-
- 2. What should I be aware of when I am debugging multilanguage
- programs with Turbo Debugger?
-
- Turbo Debugger's default source language is "Source," which
- means it chooses the expression language based on the current
- source module. This can cause some confusion if your program
- has source modules written in different languages (like C
- and assembler). Since you are actually entering a language
- expression any time Turbo Debugger prompts you for a value
- or an address, this can cause some unexpected results:
-
- a. Even if you are in a CPU window or a Dump window, you
- must still enter addresses in the source language,
- despite the fact that the window is displaying in hex.
- For example, to display the contents of memory address
- 1234:5678, you must type one of the following
- expressions, depending on your current source language:
-
- C 0x1234:0x5678
- Pascal $1234:$5678
- Assembler 1234H:5678H
-
- b. When your current language is assembler, you must be
- careful when entering hex numbers, since they are
- interpreted EXACTLY as they would be in an assembler
- source file. This means that if you want to enter a
- number that starts with one of the hex digits A - F, you
- must first precede the letter with a 0 so Turbo Debugger
- knows you are entering a number. Likewise, if your number
- ends in B or D (indicating a binary or decimal number), you
- must add an H to indicate that you really want a hex number:
-
- OK: 0aaaa 123dh 89abh
-
- BAD: aaaa 123d 89ab
-
- 3. Why does the text "Cannot be changed" come up when I do an
- assignment in the Data/Evaluate/Modify "New value" pane?
-
- If you use the Data/Evaluate/Modify command (Ctrl-F4) to
- change a variable by direct assignment, the "New value" pane
- will say "Cannot be changed." This doesn't mean the
- assignment didn't take effect. What it does mean is that the
- assignment expression as a whole is not a memory-referencing
- expression whose value you can change by moving to the
- bottom pane. Here are some examples of direct assignment
- expressions:
-
- C x = 4
- Pascal ratio := 1.234
- Assembler wval = 4 shl 2
-
- If you had typed just "x," "ratio," or "wval" into the top
- pane, then you would be able to move to the bottom pane and
- enter a new value. The direct assignment method using the
- "=" or ":=" assignment operator is quicker and more
- convenient if you don't care about examining the value of
- the variable before modifying it.
-
-
- 4. What could happen when global breakpoints are set on local
- variables?
-
- When you set global breakpoints using local variables, make
- sure the breakpoints are cleared before you exit the
- procedure or function that the variables are defined in. The
- best way to do this is to put a breakpoint on the last line
- of the procedure or function. If you do not clear the
- breakpoints, your program will break unexpectedly and may
- even hang on some machines because the breakpoints are being
- set in memory that is not currently being used by the
- procedure or function.
-
-
- 5. Why is execution slower when tracing (F7) than when stepping
- (F8) through my programs?
-
- Turbo Debugger has the capability for reverse execution, which
- means that when you are tracing through your program, TDW could
- be saving all the information about the source line you just
- traced over. TDW only saves this information in the Module window
- if you have chosen View|Execution History and toggled the Full History
- local menu command to 'Yes'. If you want faster execution you can
- step over (F8) the instruction or toggle the Full History option to
- 'No' in the Execution History window. (Although reverse execution is
- always available in the CPU viewer, you must toggle this option
- to 'Yes' to work in the Module viewer. The default setting is
- 'No'.)
-
- /************************* END OF FILE *****************************/
-