home *** CD-ROM | disk | FTP | other *** search
/ The Developer Connection…ice Driver Kit for OS/2 3 / DEV3-D1.ISO / devtools / sd386 / sd386.inf (.txt) < prev    next >
Encoding:
OS/2 Help File  |  1994-01-24  |  72.0 KB  |  2,001 lines

  1.  
  2. ΓòÉΓòÉΓòÉ 1. Introduction ΓòÉΓòÉΓòÉ
  3.  
  4. SD386 is a debugger for C applications running under OS/2 2.x. SD386 can debug 
  5. 32-bit, 16-bit, and mixed 16- and 32-bit applications. SD386 is designed to 
  6. speed up C program development. 
  7.  
  8. Using SD386, you can: 
  9.  
  10. o Debug C source programs. 
  11. o Debug OS/2 2.x applications at source level including PM applications. 
  12. o Debug OS/2 2.x applications remotely over a com port. 
  13. o Debug DLL code at the source level. 
  14. o Debug multi-threaded applications. 
  15. o Scroll through the HLL (high-level language) source, search for character 
  16.   strings, or find other separately compiled functions or files. 
  17. o View and scroll through the disassembled machine instructions, including 
  18.   co-processor instructions. 
  19. o Set breakpoints at HLL statements or machine instructions. 
  20. o Set conditional breakpoints at HLL statements or machine instructions. 
  21. o Use hardware debug watchpoints. 
  22. o Single-step program execution by HLL statement or machine instruction. 
  23. o Display program variables by name (HLL-level) or address (machine-level) and 
  24.   show the results in hexadecimal, character, decimal, floating point, or 
  25.   user-defined format. 
  26. o View arrays, structs, unions, enums, and arbitrary program-defined types in 
  27.   C. 
  28. o Expand the view of a structure to include members. 
  29. o Expand the view of a multi-dimensional array. 
  30. o Modify variables by typing over the displayed values. 
  31. o View or change the contents of machine registers. 
  32. o View the contents of the co-processor registers. 
  33. o Set the currently executing line. 
  34. o View the target program's screen at any time during execution. 
  35. o View or change the status of the target program's threads. 
  36. o Browse any text file. 
  37. o View the target program's linked DLLs. 
  38. o Select which processor exceptions you wish SD386 to notify you of. 
  39.  
  40.  
  41. ΓòÉΓòÉΓòÉ 1.1. Using the Online Help ΓòÉΓòÉΓòÉ
  42.  
  43. Help is available as context-sensitive help. Context-sensitive help lets you 
  44. access help from any menu choice, window, or field to discover how to use that 
  45. particular item. 
  46.  
  47. To access a help screen, use one of the following methods: 
  48.  
  49. o Select choices from the Help pull-down 
  50.  
  51. o Press F1 in any SD386 window 
  52.  
  53. o Press F1 while highlighting any menu bar item 
  54.  
  55. o Press F1 while highlighting any pull-down choice 
  56.  
  57. o Press F1 or select the Help pushbutton in any dialog box. 
  58.  
  59. You can also access most pull-down choices from the keyboard. The keys used to 
  60. access the pull-down choices are called shortcut keys and accelerator keys. For 
  61. a list of these keys, refer to the online help. 
  62.  
  63.  
  64. ΓòÉΓòÉΓòÉ 1.2. Version Changes ΓòÉΓòÉΓòÉ
  65.  
  66.  
  67. ΓòÉΓòÉΓòÉ 1.2.1. Version 2.00 ΓòÉΓòÉΓòÉ
  68.  
  69. o Support for debugging C programs written using C-Set++. 
  70. o Support for remote debugging over a com port. 
  71. o Addition of an Execution Services Probe(ESP) to the package. This is needed 
  72.   to support remote debug. 
  73. o Addition of Ctrl-Break handler. 
  74. o Addition of /r option to support bit rates from 300 to 38400. 
  75. o Addition of /a option to to specify the com port for remote debugging. 
  76. o Addition of /p option to read SD386.PRO. This used to be default. 
  77. o Addition of /k option for keyboard only input. 
  78. o Addition of /u option to not flush the keyboard buffer. 
  79. o Addition of /m for viewing imported variables. 
  80. o Addition of /s option to allow you to not stop at main. 
  81. o Addition of a go to line number option. 
  82. o Addition of a modem.ram file to the package. These are sample dial up 
  83. o command files. 
  84. o Modifications to cursor sensitive prompting. 
  85. o Improvements in the FormatVar pulldown. 
  86. o Improvements in the handling of the ALT and ESC keys. 
  87. o Improvements in SD386.PRO. 
  88.  
  89.  
  90. ΓòÉΓòÉΓòÉ 1.2.2. Version 1.02 ΓòÉΓòÉΓòÉ
  91.  
  92. o Addition of a CUA mouse driven interface while maintaining compatibility with 
  93.   the old style interface. 
  94. o Completely revised online help (available with the new interface). 
  95. o Fix for intermittant trap C stepping in 16 bit disassembly. 
  96. o Fix for display of 16 bit operands in use32 segment. 
  97. o Fix for not displaying 16 bit operands in disassembly view. 
  98. o Fix for trap when searching for functions with very long names. 
  99. o Fix for unwinding 16 bit call stack after an exception. 
  100. o Allow for unwinding up to 100 call stack frames (the old limit was 10 which 
  101.   was much too small for debugging PM apps). 
  102. o The addition of some more rigorous algorithms for unwinding call stacks. 
  103. o The addition of a "Show All" option to the call stack unwinding dialog. This 
  104.   option invokes the more rigorous algorithms. 
  105. o The addition of a "Show Named" option to the call stack unwinding dialog. 
  106.   This option invokes the more rigorous algorithm but filters stack frames 
  107.   without names. 
  108. o Fixes for Restart/Quit not cleaning up debuggee. 
  109. o Fix for trap D when debuggee gets an access violation at an unknown address. 
  110.  
  111.  
  112. ΓòÉΓòÉΓòÉ 1.2.3. Version 1.01 ΓòÉΓòÉΓòÉ
  113.  
  114. o Add watchpoint support with hardware debug registers. 
  115. o Debug Microsoft C 6.00 source with multiple code segments. 
  116.  
  117.  
  118. ΓòÉΓòÉΓòÉ 1.2.4. Version 1.00 ΓòÉΓòÉΓòÉ
  119.  
  120. o First release. 
  121.  
  122.  
  123. ΓòÉΓòÉΓòÉ 1.3. Further Information ΓòÉΓòÉΓòÉ
  124.  
  125.  
  126. ΓòÉΓòÉΓòÉ 1.3.1. Credits ΓòÉΓòÉΓòÉ
  127.  
  128. SD386 is supported by the Common Architecture Software Support (CASS) group, 
  129. which is part of the Programming Products organization in Lexington, KY. 
  130.  
  131. We would like to thank Jim Christensen, Alan Cole, and David Toll, of the IBM 
  132. T.J. Watson Research Lab, Hawthorne, NY, for their invaluable assistance in 
  133. producing SD386. Jim and Alan are the primary authors of the predecessor of 
  134. SD386. Without them, SD386 would not exist. Also, we would like to thank the 
  135. early users of SD386 and its predecessors for their feedback. 
  136.  
  137.  
  138. ΓòÉΓòÉΓòÉ 1.4. Requirements ΓòÉΓòÉΓòÉ
  139.  
  140. Hardware 
  141.  
  142. Computer: SD386 supports hardware running OS/2 2.x and runs in a text window or 
  143. full screen session. 
  144.  
  145. Software 
  146.  
  147. The following software is required: 
  148.  
  149. o OS/2 2.x 
  150.  
  151. o For 16-bit C programs:  IBM C/2 C compiler version 1.1 or Microsoft C 
  152.   compiler version 4.0 (or beyond). The Microsoft C6.00A compiler seems to 
  153.   produce more reliable debug information than earlier Microsoft compilers. 
  154.  
  155. o For 32-bit C programs:  IBM C Set/2 and IBM C-Set++ compilers. 
  156.  
  157. o You may also use the MASM assembler version 5 (or beyond) for routines called 
  158.   by your HLL program. 
  159.  
  160.  
  161. ΓòÉΓòÉΓòÉ 2. Before Beginning ΓòÉΓòÉΓòÉ
  162.  
  163. This chapter explains how to prepare your application for debugging and how to 
  164. install SD386. 
  165.  
  166.  
  167. ΓòÉΓòÉΓòÉ 2.1. Preparing a Program ΓòÉΓòÉΓòÉ
  168.  
  169. To prepare a program, you must compile and link the program with the proper 
  170. options. 
  171.  
  172.  
  173. ΓòÉΓòÉΓòÉ 2.1.1. Compiling Applications Using IBM C Set/2 Compiler ΓòÉΓòÉΓòÉ
  174.  
  175. The following options need to be specified for the IBM C Set/2 compiler: 
  176.  
  177. /Ti         Include debugging information in the module's run file (.obj). 
  178. /O-         Disable optimization. 
  179.  
  180.             Note:  Optimized code tends to have code movement which makes it 
  181.             difficult to associate machine code reliably with its corresponding 
  182.             source line number. Therefore, we suggest that initial testing and 
  183.             debugging of a module be on non-optimized code. 
  184.  
  185.             Note:  You may also wish to use the Extra execution trace analysis 
  186.             tool to analyze the behavior of your IBM C Set/2 programs. To do 
  187.             so: 
  188. /Gh         Include the hook code to allow Extra to monitor your module. This 
  189.             option has no effect on SD386. 
  190.  
  191.  
  192. ΓòÉΓòÉΓòÉ 2.1.2. Compiling Applications Using Microsoft C Compiler ΓòÉΓòÉΓòÉ
  193.  
  194. The following options need to be specified for the Microsoft C compiler: 
  195.  
  196. /Zi         Include debugging information in the module's run file (.obj). 
  197. /Od         Disable optimization. 
  198.  
  199.             Note:  Do not use the quick compile or incremental link options 
  200.             with Microsoft C. 
  201.  
  202.             Note:  Optimized code tends to have code movement which makes it 
  203.             difficult to associate machine code reliably with its corresponding 
  204.             source line number. Therefore, we suggest that initial testing and 
  205.             debugging of a module be on non-optimized code. 
  206.  
  207.  
  208. ΓòÉΓòÉΓòÉ 2.1.3. Linking a Program ΓòÉΓòÉΓòÉ
  209.  
  210. The 
  211.  
  212. /CO or /DE  This causes the linker to include debugging information in the 
  213.             application's run file (.EXE or .DLL). 
  214.  
  215.  
  216. ΓòÉΓòÉΓòÉ 2.2. Customizing the Environment ΓòÉΓòÉΓòÉ
  217.  
  218. The program and the data files must be available to SD386 just as when you run 
  219. your program by itself. You can set the SD386SRC environment variable and SD386 
  220. will use it to search for executable, source, and text files. SD386 searches 
  221. for your program's executable, source, and text files in this order: 
  222.  
  223.  1. path specified when entering the filename (browsing and invoking SD386), 
  224.     e.g., 
  225.  
  226.         c:\test\src\myvars.h
  227.  
  228.  2. the current directory, 
  229.  3. directory specified to the compiler (if any), 
  230.  4. the directories specified in the SD386SRC environment variable, and 
  231.  5. the directories in the system PATH. 
  232.  
  233. The SD386SRC environment variable is meant for use by persons whose source 
  234. files are not in the same directory as the resulting object files and are in a 
  235. directory that is not in the path. For example, if your source is contained in 
  236. C:\MYPROG\SRC and your object and EXE files are in C:\MYPROG\OBJ, and if 
  237. \MYPROG\SRC is not in the path and is not the current directory, then you 
  238. should set the SD386SRC environment variable to C:\MYPROG\SRC before invoking 
  239. SD386. To set or reset this environment variable, enter a command similar to 
  240. this one at the OS/2 prompt: 
  241.  
  242. SET SD386SRC=C:\MYPROG\SRC
  243.  
  244.  
  245. ΓòÉΓòÉΓòÉ 3. Getting Started ΓòÉΓòÉΓòÉ
  246.  
  247. This chapter discusses how to start and use SD386. It describes the SD386 
  248. windows and menus. 
  249.  
  250.  
  251. ΓòÉΓòÉΓòÉ 3.1. Starting SD386 ΓòÉΓòÉΓòÉ
  252.  
  253. To start SD386 from the ╨½ command prompt, enter the SD386 command, any SD386 
  254. options, and the command you normally use to run your program. For example, if 
  255. you type 
  256.  
  257.             filename input.dat /fileopt
  258. to run your program, then to run your program under the control of SD386, you 
  259. would type the following and then press Enter. 
  260.  
  261.             SD386 filename input.dat /fileopt
  262.  
  263. The full description of the command syntax is: 
  264.  
  265. SD386  [options]  [program name]  arguments
  266.  
  267. options       may be any of the following. Each option must be prefaced with a 
  268.               dash (-) or a slash (/). 
  269.  
  270.    /h or /?  Print this help screen. 
  271.    /p        Read SD386.PRO. 
  272.    /c        Force case sensitivity for public names. 
  273.    /i        Debug initialization code. 
  274.    /f        Run debuggee in full screen session. 
  275.    /w        Run debuggee in text window session. 
  276.    /k        Keyboard only (no mouse). 
  277.    /u        Do not flush keyboard buffer. 
  278.    /m        Resolve imports. 
  279.    /r[n]     Remote debug: 
  280.  
  281.                               n=0   1    2    3    4    5     6
  282.                           speed=300 1200 2400 4800 9600 19200 38400
  283.  
  284.    /an       Which Com(Async) port. For example, /a1 uses COM1: 
  285.    /s        Don't stop at "main" entry point. 
  286. program name  the name of the EXE file you wish to debug. 
  287.  
  288.               SD386 will attempt to set the first breakpoint at the address of 
  289.               the main function of your program. Note that special start-up and 
  290.               initialization code can get in the way of this process. 
  291.  
  292.               For C programs, the standard C arguments argc, argv, and envp 
  293.               will be passed to your program. 
  294. arguments     lists the standard input character strings passed to the main 
  295.               procedure or function. 
  296.  
  297. Note:  You should run SD386 from a full-screen session if you are debugging a 
  298. PM application. This lessens the chance of a lockup due to PM message queue 
  299. traffic problems. See Presentation Manager Limitations for more information. 
  300.  
  301. Note:  The correspondence between machine code and source file line number is 
  302. taken from the object file when this information is generated by the /Zd or /Zi 
  303. option (for MS C), the /Ti option (for IBM C Set/2). The debugger is only as 
  304. accurate as the information provided by the compiler. 
  305.  
  306. After some initialization, SD386 displays its screen. The screen contains the 
  307. action bar and the Source window. From this window, you can perform all of the 
  308. SD386 debugging functions as well as invoke the other windows. 
  309.  
  310. Note:  Online help is available throughout SD386 for each window, menu, and 
  311. pulldown option. You can get help from the Help pulldown menu or by pressing 
  312. F1. 
  313.  
  314.  
  315. ΓòÉΓòÉΓòÉ 3.2. Using the Source Window ΓòÉΓòÉΓòÉ
  316.  
  317. The Source window is the main window of SD386 and displays the source code for 
  318. the module you are debugging. When you start SD386, it sets a breakpoint at the 
  319. main entry point of your program (unless you have asked SD386 to debug 
  320. initialization code with the /i option). Executable lines are highlighted and 
  321. non-executable lines are not highlighted. The line that is about to be executed 
  322. and lines with breakpoints set on them are shown with different background 
  323. colors. Combinations of these attributes can occur for a breakpoint line at 
  324. which execution is currently halted. In these cases, SD386 mixes the two 
  325. attributes as appropriate. 
  326.  
  327. Note:  You can change the color settings for the various fields in the Colors 
  328. pulldown in the Settings menu. The color options are described in Colors. 
  329.  
  330.  
  331. ΓòÉΓòÉΓòÉ 3.3. Interacting with SD386 ΓòÉΓòÉΓòÉ
  332.  
  333. You interact with SD386 by using the keyboard and/or the mouse. SD386 has a 
  334. full set of accelerator keys for menus and pulldowns. SD386 functions primarily 
  335. from the Source window and the Action Bar. Other windows can be popped up or 
  336. pulled down as appropriate. The Data window can share the screen with the 
  337. Source window and can be sized appropriately. 
  338.  
  339.  
  340. ΓòÉΓòÉΓòÉ 3.4. Using the Action Bar ΓòÉΓòÉΓòÉ
  341.  
  342. The Action Bar contains most of the debugging functions of SD386. You can get 
  343. to the Action Bar with the mouse or with the accelerator key F10. The 
  344. ExpressBar function (default Esc key) will take you immediately to the File 
  345. pulldown. The Action Bar is divided into several menus. Each of these menus has 
  346. pulldowns containing the various functions. Accelerator keys are available for 
  347. most of the pulldowns. The menus and their pulldowns are discussed in detail in 
  348. Action Bar Functions. 
  349.  
  350.  
  351. ΓòÉΓòÉΓòÉ 4. Action Bar Functions ΓòÉΓòÉΓòÉ
  352.  
  353. This chapter discusses the functions available in the Action Bar. They are 
  354. discussed in the same order as they appear in the Action Bar. This information 
  355. is also available in the online context-sensitive help for each pulldown menu. 
  356.  
  357.  
  358. ΓòÉΓòÉΓòÉ 4.1. File Pulldown ΓòÉΓòÉΓòÉ
  359.  
  360. The File pulldown contains functions dealing with getting and finding 
  361. debuggable things (functions, addresses, files, and the execution point), 
  362. moving around the ring of files, and restarting or exiting SD386. Here are the 
  363. functions available on the File pulldown: 
  364.  
  365. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  366. Γöé PULLDOWN           Γöé ACTION                     Γöé
  367. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  368. Γöé Get Function...        Γöé Locates the source file for a function.    Γöé
  369. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  370. Γöé Get Address...        Γöé Locates an address.              Γöé
  371. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  372. Γöé Get File...          Γöé Opens a source file.              Γöé
  373. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  374. Γöé Find Function         Γöé Locates the source file for a function.    Γöé
  375. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  376. Γöé Find Exec Line        Γöé Locates the current execution line.      Γöé
  377. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  378. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  379. Γöé Next File           Γöé Gets the next file in the source file ring.  Γöé
  380. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  381. Γöé Drop File           Γöé Drops the current file from the source file  Γöé
  382. Γöé                Γöé ring.                     Γöé
  383. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  384. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  385. Γöé Browse File...        Γöé Browses a file.                Γöé
  386. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  387. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  388. Γöé Restart            Γöé Restarts the target application.        Γöé
  389. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  390. Γöé Quit             Γöé Ends the debugger.               Γöé
  391. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  392.  
  393.  
  394. ΓòÉΓòÉΓòÉ 4.1.1. Get Function ΓòÉΓòÉΓòÉ
  395.  
  396. Locates the source file that contains the definition of the function you 
  397. specify and adds the source file to the ring of source files. 
  398.  
  399. Once a DLL is attached, you can use Get Function to display the source for the 
  400. DLL's functions. For run-time DLLs, the DLL is not attached until the 
  401. DosLoadModule function has been executed. 
  402.  
  403. To get around this constraint for run-time DLLs, i.e., to be able to view 
  404. source, set breakpoints, etc., before the DLL is attached, you can force the 
  405. DLL to be attached at start-up time by importing one of the function names in 
  406. the module definition file for the EXE file. For example: 
  407.  
  408. NAME EXENAME
  409. PROTMODE
  410. IMPORTS
  411.      FUNCNAME=DLLNAME.FUNCNAME
  412.  
  413. Note:  This should be a temporary import for debugging purposes only. It does 
  414. change your DLL from being a run-time DLL to being statically linked. 
  415.  
  416. SD386 allows you to use Get Function even if the main EXE file is not linked 
  417. with debug info. This allows you to debug a DLL that is linked with debug info 
  418. from an EXE that is not linked with debug info. 
  419.  
  420. See Debugging DLLs for more info about debugging dynamically linked (run-time) 
  421. DLLs. 
  422.  
  423.  
  424. ΓòÉΓòÉΓòÉ 4.1.2. Get Address ΓòÉΓòÉΓòÉ
  425.  
  426. Locates the source file and line number containing the specified address and 
  427. adds the source file to the ring of files. If source is not available then a 
  428. disassembly view will be shown. 
  429.  
  430.  
  431. ΓòÉΓòÉΓòÉ 4.1.3. Get File ΓòÉΓòÉΓòÉ
  432.  
  433. Locates the file specified looking first in the ring of files and then in the 
  434. list of files linked with the /CO or /DE debug option. Get File also adds the 
  435. specified source file to the ring. After adding a source file to the ring with 
  436. Get File, SD386 treats it like any other source file. You can set breakpoints 
  437. and perform any of the other source functions of SD386 in the file. 
  438.  
  439.  
  440. ΓòÉΓòÉΓòÉ 4.1.4. Find Function ΓòÉΓòÉΓòÉ
  441.  
  442. Locates the source file that contains the function on which the cursor is 
  443. placed and adds the source file to the ring of source files. 
  444.  
  445.  
  446. ΓòÉΓòÉΓòÉ 4.1.5. Find Exec Line ΓòÉΓòÉΓòÉ
  447.  
  448. This function brings the currently executing line (Exec Line) into view and 
  449. places the cursor on that line.  If the cursor is already on the Exec Line, 
  450. then this function will take you to the next line to be executed in the 
  451. previous stack frame and place the cursor on that line.  Subsequent executions 
  452. will continue to to take you to previous stack frames until you return to the 
  453. Exec Line. Effectively, this function lets you walk the stack in a ring like 
  454. fashion adding a file for each stack frame to the ring of files. 
  455.  
  456.  
  457. ΓòÉΓòÉΓòÉ 4.1.6. Next File ΓòÉΓòÉΓòÉ
  458.  
  459. Switches to the next file in the ring of source files. 
  460.  
  461.  
  462. ΓòÉΓòÉΓòÉ 4.1.7. Drop File ΓòÉΓòÉΓòÉ
  463.  
  464. If the current file does not define the currently executing procedure, then 
  465. Drop File will remove the file from the ring of files. 
  466.  
  467.  
  468. ΓòÉΓòÉΓòÉ 4.1.8. Browse File ΓòÉΓòÉΓòÉ
  469.  
  470. Loads a file for browsing. 
  471.  
  472. The Browse window provides a set of simple file browsing functions. As in a 
  473. typical file browser, you can move up and down in the file. You can also locate 
  474. text. 
  475.  
  476. To enter the Browse window, press F11 in the Source or Data window or use the 
  477. Browse pulldown in the File menu. SD386 presents a prompt for you to fill in 
  478. the name of a file to be browsed. You can enter a simple filename or provide a 
  479. path with the filename. Press F1 while on the prompt line for an explanation of 
  480. the search order for the text file. 
  481.  
  482. Browse Window Keyboard Functions 
  483.  
  484. Key Input       If you want to 
  485. Down Arrow      Cursor down one line. 
  486. Up Arrow        Cursor up one line. 
  487. PgDn            Scroll down. 
  488. PgUp            Scroll up. 
  489. Ctrl-PgDn       Bot of screen. 
  490. Ctrl-PgUp       Top of screen. 
  491. Ctrl-Home       Top of file. 
  492. Ctrl-End        End of file. 
  493. / or F          Find. 
  494. R               Repeat find. 
  495. Esc             Leave browse. 
  496. F1              Help. 
  497.  
  498.  
  499. ΓòÉΓòÉΓòÉ 4.1.9. Restart ΓòÉΓòÉΓòÉ
  500.  
  501. Reloads and restarts the target application.  Breakpoints and the contents of 
  502. the Data window are retained. Data items from DLLs are removed because their 
  503. status after a restart is uncertain. 
  504.  
  505.  
  506. ΓòÉΓòÉΓòÉ 4.1.10. Quit ΓòÉΓòÉΓòÉ
  507.  
  508. Ends the debugger. When debugging remote, you will be given the option to 
  509. terminate the Execution Services Probe(ESP.EXE). 
  510.  
  511.  
  512. ΓòÉΓòÉΓòÉ 4.2. Run Pulldown ΓòÉΓòÉΓòÉ
  513.  
  514. The Run pulldown contains functions for running and single stepping the target 
  515. application. Here are the functions available on the Run pulldown: 
  516.  
  517. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  518. Γöé PULLDOWN           Γöé ACTION                     Γöé
  519. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  520. Γöé Run              Γöé Runs the target program.            Γöé
  521. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  522. Γöé Single Step          Γöé Executes the current line.           Γöé
  523. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  524. Γöé Step Into           Γöé Steps into a function call.          Γöé
  525. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  526. Γöé Run To Cursor         Γöé Runs up to the cursor line.          Γöé
  527. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  528. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  529. Γöé Run NoSwap          Γöé Runs the program, no screen swap.       Γöé
  530. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  531. Γöé Single Step NoSwap      Γöé Executes the current line, no screen swap.   Γöé
  532. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  533. Γöé Step Into NoSwap       Γöé Steps into a function, no screen swap.     Γöé
  534. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  535. Γöé Run To Cursor NoSwap     Γöé Runs up to the cursor line, no screen swap.  Γöé
  536. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  537. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  538. Γöé Set Exec Line         Γöé Sets current line as the next executable.   Γöé
  539. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  540.  
  541.  
  542. ΓòÉΓòÉΓòÉ 4.2.1. Run ΓòÉΓòÉΓòÉ
  543.  
  544. Runs the program until a breakpoint is hit, an exception occurs, or the end of 
  545. the program is reached. 
  546.  
  547.  
  548. ΓòÉΓòÉΓòÉ 4.2.2. Single Step ΓòÉΓòÉΓòÉ
  549.  
  550. Executes the current source line (as defined by your compiler). If the current 
  551. line calls other procedures, they will executed but will not be traced.  Use 
  552. the Step Into function to trace calls to other procedures as well. 
  553.  
  554.  
  555. ΓòÉΓòÉΓòÉ 4.2.3. Step Into ΓòÉΓòÉΓòÉ
  556.  
  557. Executes the current source line. If the current line calls other procedures, 
  558. they will also be traced. 
  559.  
  560. Note:  When you step into a function, parameters and the call stack will not be 
  561. displayed correctly until the function prologue code is executed. This 
  562. generally involves stepping one additional statement. 
  563.  
  564.  
  565. ΓòÉΓòÉΓòÉ 4.2.4. Run To Cursor ΓòÉΓòÉΓòÉ
  566.  
  567. Sets a one-time breakpoint on the line containing the cursor and executes the 
  568. program.  If the cursor line is not hit during the run, a one-time breakpoint 
  569. is set on the line to be hit on the next run. 
  570.  
  571.  
  572. ΓòÉΓòÉΓòÉ 4.2.5. Run NoSwap ΓòÉΓòÉΓòÉ
  573.  
  574. Runs the program in the background until a breakpoint is hit, an exception 
  575. occurs, or the end of the program is reached. 
  576.  
  577.  
  578. ΓòÉΓòÉΓòÉ 4.2.6. Single Step NoSwap ΓòÉΓòÉΓòÉ
  579.  
  580. Executes the current source line (as defined by your compiler) in the 
  581. background.  If the current line calls other procedures, they will executed but 
  582. will not be traced.  Use the Step Into function to trace calls to other 
  583. procedures as well. 
  584.  
  585.  
  586. ΓòÉΓòÉΓòÉ 4.2.7. Step Into NoSwap ΓòÉΓòÉΓòÉ
  587.  
  588. Executes the current source line in the background.  If the current line calls 
  589. other procedures, they will also be traced. 
  590.  
  591.  
  592. ΓòÉΓòÉΓòÉ 4.2.8. Run To Cursor NoSwap ΓòÉΓòÉΓòÉ
  593.  
  594. Sets a one-time breakpoint on the line containing the cursor and executes the 
  595. program in the background.  If the cursor line is not hit during the run, a 
  596. one-time breakpoint is set on the line to be hit on the next run. 
  597.  
  598.  
  599. ΓòÉΓòÉΓòÉ 4.2.9. Set Exec Line ΓòÉΓòÉΓòÉ
  600.  
  601. Sets the current execution line to the line containing the cursor. 
  602.  
  603.  
  604. ΓòÉΓòÉΓòÉ 4.3. Breakpoints Pulldown ΓòÉΓòÉΓòÉ
  605.  
  606. The Breakpoints pulldown contains functions for setting and clearing various 
  607. kinds of breakpoints. Here are the functions available on the Breakpoints 
  608. pulldown: 
  609.  
  610. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  611. Γöé PULLDOWN           Γöé ACTION                     Γöé
  612. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  613. Γöé Set/Clear on Cursor      Γöé Sets a breakpoint at the cursor.        Γöé
  614. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  615. Γöé Set Conditional on Cursor... Γöé Sets a cond'l breakpoint at the cursor.    Γöé
  616. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  617. Γöé Function entry...       Γöé Sets a breakpoint on a function.        Γöé
  618. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  619. Γöé Address...          Γöé Sets a breakpoint on an address.        Γöé
  620. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  621. Γöé Clear All Breaks       Γöé Clears all breakpoints.            Γöé
  622. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  623. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  624. Γöé Hardware Debug Regs...    Γöé Sets watchpoints.               Γöé
  625. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  626.  
  627.  
  628. ΓòÉΓòÉΓòÉ 4.3.1. Set/Clear on Cursor ΓòÉΓòÉΓòÉ
  629.  
  630. Sets or resets a breakpoint on the line selected by the cursor. Only 
  631. highlighted lines (as determined by the line numbers generated by your 
  632. compiler) may be selected.  Clearing a breakpoint from this screen clears all 
  633. breakpoints for that line. 
  634.  
  635. If debugging at source level, you may notice that not all lines may be selected 
  636. for breakpoints. This is due to your compiler, which generates a table of line 
  637. numbers versus module addresses. The debugger can set breakpoints only on those 
  638. lines that have an entry in this table (for example, you cannot set breakpoints 
  639. on comments, some declarations, some terminating braces, nor various other 
  640. places). 
  641.  
  642.  
  643. ΓòÉΓòÉΓòÉ 4.3.2. Set Conditional on Cursor ΓòÉΓòÉΓòÉ
  644.  
  645. Sets a conditional breakpoint on the line selected by the cursor.  Only 
  646. highlighted lines (as determined by the line numbers generated by your 
  647. compiler) may be selected.  Clearing a breakpoint from this screen clears all 
  648. breakpoints for that line. 
  649.  
  650. Your program does not always stop at a conditional breakpoint. It stops only 
  651. when the condition that you specify is true. You might, for example, want to 
  652. stop in a program loop only after 50 iterations. You could specify a breakpoint 
  653. with something like i > 50 as the condition, where i is a loop counter used in 
  654. your program. Note that the condition is evaluated each time control reaches 
  655. the breakpoint. 
  656.  
  657. The condition should be in the following form: 
  658.  
  659. <variable>  <operator>  <constant>
  660.  
  661. where:
  662.   <variable> is a variable or register expression;
  663.   <operator> is one of <, >, ==, <=, >=, or !=;
  664.   <constant> is a constant expression.
  665. Refer to Formulas and Expressions for a complete description of expressions. 
  666.  
  667.  
  668. ΓòÉΓòÉΓòÉ 4.3.3. Function Entry ΓòÉΓòÉΓòÉ
  669.  
  670. Sets a breakpoint on a function by name. If the name is not know by the 
  671. debugger, as might be the case when debugging dynamically loaded or load on 
  672. call dlls, then you will be given the option to defer the breakpoint until the 
  673. dll is loaded. This is a feature of SD386 generally referred to as "deferred 
  674. breakpoints." 
  675.  
  676.  
  677. ΓòÉΓòÉΓòÉ 4.3.4. Address ΓòÉΓòÉΓòÉ
  678.  
  679. Sets a breakpoint on a given address. 
  680.  
  681.  
  682. ΓòÉΓòÉΓòÉ 4.3.5. Clear All Breaks ΓòÉΓòÉΓòÉ
  683.  
  684. Clears all breakpoints in the target program. This clears all types of 
  685. breakpoints in the target program. 
  686.  
  687.  
  688. ΓòÉΓòÉΓòÉ 4.3.6. Hardware Debug Registers ΓòÉΓòÉΓòÉ
  689.  
  690. Brings up the watchpoint menu, which allows you to enter expressions for up to 
  691. 4 watchpoints.  These watchpoints use the hardware debug registers of the Intel 
  692. chip. See Watchpoint Window Details for details. 
  693.  
  694.  
  695. ΓòÉΓòÉΓòÉ 4.4. Search Pulldown ΓòÉΓòÉΓòÉ
  696.  
  697. The Search pulldown contains functions for locating text strings. Here are the 
  698. functions available on the Search pulldown: 
  699.  
  700. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  701. Γöé PULLDOWN           Γöé ACTION                     Γöé
  702. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  703. Γöé Find...            Γöé Finds a specified string in the current    Γöé
  704. Γöé                Γöé source file.                  Γöé
  705. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  706. Γöé RepeatFind          Γöé Repeats the previous find command.       Γöé
  707. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  708.  
  709.  
  710. ΓòÉΓòÉΓòÉ 4.4.1. Find ΓòÉΓòÉΓòÉ
  711.  
  712. Find searches the current source file for a string. The find function 
  713. highlights the found string and indicates when it wraps from the bottom to the 
  714. top of the file. You can use a "/" as an express key to the Find dialog. 
  715. Subsequently, you can use "R" as an express key for a repeat find. 
  716.  
  717.  
  718. ΓòÉΓòÉΓòÉ 4.4.2. RepeatFind ΓòÉΓòÉΓòÉ
  719.  
  720. Repeats the find command with the previous string entered. You can use "R" as 
  721. an express key for a repeat find. 
  722.  
  723.  
  724. ΓòÉΓòÉΓòÉ 4.5. Data Pulldown ΓòÉΓòÉΓòÉ
  725.  
  726. The Data pulldown contains functions that deal with items in the Data window. 
  727. Details about the Data window, formulas and expressions, formula syntax, data 
  728. formats, and data expansion are in Data Window Details. Here are the functions 
  729. available on the Data pulldown: 
  730.  
  731. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  732. Γöé PULLDOWN           Γöé ACTION                     Γöé
  733. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  734. Γöé Show Var           Γöé Shows the value of the variable at the     Γöé
  735. Γöé                Γöé cursor.                    Γöé
  736. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  737. Γöé Show Var->          Γöé Shows the contents of the pointer variable   Γöé
  738. Γöé                Γöé selected by the cursor.            Γöé
  739. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  740. Γöé Watch Var           Γöé Adds the variable to the Data window.     Γöé
  741. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  742. Γöé Watch Var->          Γöé Adds the contents of the pointer variable to  Γöé
  743. Γöé                Γöé the Data window.                Γöé
  744. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  745. Γöé Expand Var          Γöé Expands the variable in the Data Expansion   Γöé
  746. Γöé                Γöé window.                    Γöé
  747. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  748. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  749. Γöé Edit Expression        Γöé Edits the expression.             Γöé
  750. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  751. Γöé Edit Storage         Γöé Edits the storage displayed in the Data    Γöé
  752. Γöé                Γöé window.                    Γöé
  753. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  754. Γöé Format Var          Γöé Shows action bar of choices for the format of Γöé
  755. Γöé                Γöé the display of the data.            Γöé
  756. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  757. Γöé Remove Var          Γöé Removes a variable from the Data window.    Γöé
  758. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  759. Γöé Insert            Γöé Inserts a variable in the Data window.     Γöé
  760. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  761.  
  762.  
  763. ΓòÉΓòÉΓòÉ 4.5.1. Show Var ΓòÉΓòÉΓòÉ
  764.  
  765. Shows the value of the variable selected by the cursor. The variable is 
  766. displayed at the bottom of the Source window. 
  767.  
  768.  
  769. ΓòÉΓòÉΓòÉ 4.5.2. ShowVar-> ΓòÉΓòÉΓòÉ
  770.  
  771. Shows the contents of the pointer variable selected by the cursor. The variable 
  772. is displayed at the bottom of the Source window. 
  773.  
  774.  
  775. ΓòÉΓòÉΓòÉ 4.5.3. Watch Var ΓòÉΓòÉΓòÉ
  776.  
  777. Adds the variable selected by the cursor to the Data window. 
  778.  
  779.  
  780. ΓòÉΓòÉΓòÉ 4.5.4. Watch Var-> ΓòÉΓòÉΓòÉ
  781.  
  782. Adds the pointer variable selected by the cursor to the Data window. 
  783.  
  784.  
  785. ΓòÉΓòÉΓòÉ 4.5.5. Expand Var ΓòÉΓòÉΓòÉ
  786.  
  787. Expands the view of a variable such as a member of a structure or union.  If 
  788. the member is a structure or union, its components will be displayed in the 
  789. Data Expansion window.  If the member is a pointer to another structure, etc., 
  790. the contents of the variable pointed to by the pointer will be displayed in the 
  791. Data Expansion window. 
  792.  
  793.  
  794. ΓòÉΓòÉΓòÉ 4.5.6. Edit Expression ΓòÉΓòÉΓòÉ
  795.  
  796. Allows you to edit the expression (formula) which defines what is displayed by 
  797. SD386.  One you have changed the expression, press Enter to cause SD386 to 
  798. handle the expression or press Esc to leave the expression alone. 
  799.  
  800.  
  801. ΓòÉΓòÉΓòÉ 4.5.7. Edit Storage ΓòÉΓòÉΓòÉ
  802.  
  803. Allows you to edit the value of the storaged displayed by SD386. Once you have 
  804. changed the value, press Enter to alter the actual contents of memory or press 
  805. Esc to leave the contents alone. 
  806.  
  807.  
  808. ΓòÉΓòÉΓòÉ 4.5.8. Format Var ΓòÉΓòÉΓòÉ
  809.  
  810. Formats a variable in the Data window according to the format specified.  A 
  811. menu will be displayed to choose default formats or enter the format type of 
  812. the variable. 
  813.  
  814.  
  815. ΓòÉΓòÉΓòÉ 4.5.9. Remove Var ΓòÉΓòÉΓòÉ
  816.  
  817. Removes the variable selected by the cursor from the Data window. 
  818.  
  819.  
  820. ΓòÉΓòÉΓòÉ 4.5.10. Insert ΓòÉΓòÉΓòÉ
  821.  
  822. Inserts the variable selected by the cursor in the Data window. 
  823.  
  824.  
  825. ΓòÉΓòÉΓòÉ 4.6. View Pulldown ΓòÉΓòÉΓòÉ
  826.  
  827. The View pulldown contains functions dealing with windows and views within the 
  828. Source window. Here are the functions available on the View pulldown: 
  829.  
  830. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  831. Γöé PULLDOWN           Γöé ACTION                     Γöé
  832. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  833. Γöé Source            Γöé Switches to source view.            Γöé
  834. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  835. Γöé Assembler           Γöé Switches to assembly view.           Γöé
  836. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  837. Γöé Data             Γöé Switches to the Data window.          Γöé
  838. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  839. Γöé Data Show/Hide        Γöé Display/Hide the Data window.         Γöé
  840. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  841. Γöé Timed Show App        Γöé Shows the application screen for few seconds. Γöé
  842. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  843.  
  844.  
  845. ΓòÉΓòÉΓòÉ 4.6.1. Source ΓòÉΓòÉΓòÉ
  846.  
  847. Switches to the source view in the Source window.  This option is disabled if 
  848. the current view is already the source view. 
  849.  
  850.  
  851. ΓòÉΓòÉΓòÉ 4.6.2. Assembler ΓòÉΓòÉΓòÉ
  852.  
  853. Switches to the assembly view in the Source window. This option is disabled if 
  854. the current view is already the assembly view. 
  855.  
  856.  
  857. ΓòÉΓòÉΓòÉ 4.6.3. Data ΓòÉΓòÉΓòÉ
  858.  
  859. Switches to the Data window. This option is disabled if the current window is 
  860. already the Data window. 
  861.  
  862.  
  863. ΓòÉΓòÉΓòÉ 4.6.4. Data Show/Hide ΓòÉΓòÉΓòÉ
  864.  
  865. This command toggles between showing and hiding the Data window. The contents 
  866. of the Data window remain unchanged. 
  867.  
  868.  
  869. ΓòÉΓòÉΓòÉ 4.6.5. Timed Show App ΓòÉΓòÉΓòÉ
  870.  
  871. This command shows the application screen for a few seconds. It returns back to 
  872. the previous view. 
  873.  
  874.  
  875. ΓòÉΓòÉΓòÉ 4.7. Settings Pulldown ΓòÉΓòÉΓòÉ
  876.  
  877. The Settings pulldown contains functions dealing with the various settings you 
  878. can select within SD386. Here are the functions available on the Settings 
  879. pulldown: 
  880.  
  881. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  882. Γöé PULLDOWN           Γöé ACTION                     Γöé
  883. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  884. Γöé Colors            Γöé Sets colors for various screen items.     Γöé
  885. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  886. Γöé Exceptions          Γöé Sets various exception notifications.     Γöé
  887. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  888. Γöé Assembler +/- Source     Γöé Sets type of assembly view.          Γöé
  889. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  890. Γöé Mnemonics           Γöé Sets the disassembly option.          Γöé
  891. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  892.  
  893.  
  894. ΓòÉΓòÉΓòÉ 4.7.1. Colors ΓòÉΓòÉΓòÉ
  895.  
  896. Sets the colors for the various screen areas.  You can choose colors, reset to 
  897. default colors, and optionally save color settings to the SD386 profile. 
  898.  
  899. Use the mouse or keyboard to select the field(s) you wish to change and to 
  900. cycle through the various choices for foreground and background color.  SD386 
  901. shows you what the field looks like with each combination. 
  902.  
  903.  
  904. ΓòÉΓòÉΓòÉ 4.7.2. Exceptions ΓòÉΓòÉΓòÉ
  905.  
  906. Allows you choose whether to be notified or not for various processor and 
  907. operating system exceptions. These are exceptions which your target program 
  908. receives from ╨½. 
  909.  
  910. Use the mouse or keyboard to move to any of the given exception definitions. 
  911. Once you have selected an exception, you can toggle the SD386 notification for 
  912. that exception to Notify/Nonotify, set all exceptions to their default values, 
  913. save your selections in the SD386 profile, and/or set your current selections. 
  914. More information is in Exception Window Details. 
  915.  
  916.  
  917. ΓòÉΓòÉΓòÉ 4.7.3. Assembler +/- Source ΓòÉΓòÉΓòÉ
  918.  
  919. Sets the assembler view option.  This option toggles between mixed 
  920. source/assembly and assembly only views. 
  921.  
  922.  
  923. ΓòÉΓòÉΓòÉ 4.7.4. Mnemonics ΓòÉΓòÉΓòÉ
  924.  
  925. This command sets the type of disassembly.  This option toggles between Intel 
  926. or AL/86 instructions. 
  927.  
  928.  
  929. ΓòÉΓòÉΓòÉ 4.8. Misc Pulldown ΓòÉΓòÉΓòÉ
  930.  
  931. The Misc pulldown contains various SD386 functions that don't fit in any of the 
  932. other menus. Here are the functions available on the Misc pulldown: 
  933.  
  934. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  935. Γöé PULLDOWN           Γöé ACTION                     Γöé
  936. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  937. Γöé CallStack           Γöé List of active procedures.           Γöé
  938. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  939. Γöé Threads            Γöé List of active threads.            Γöé
  940. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  941. Γöé Dlls             Γöé List of DLLs for the application.       Γöé
  942. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  943. Γöé Registers           Γöé Register display.               Γöé
  944. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  945. Γöé Edit Registers        Γöé Modify register contents.           Γöé
  946. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  947. Γöé Coprocessor Regs       Γöé Coprocessor register display.         Γöé
  948. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  949.  
  950.  
  951. ΓòÉΓòÉΓòÉ 4.8.1. CallStack ΓòÉΓòÉΓòÉ
  952.  
  953. This command displays the list of active procedures and allows you to unwind 
  954. the call stack to a selected procedure. 
  955.  
  956.  
  957. ΓòÉΓòÉΓòÉ 4.8.2. Threads ΓòÉΓòÉΓòÉ
  958.  
  959. Displays the status of all active threads and allows you to examine and/or 
  960. modify their current status. See Thread Window Details for more information. 
  961.  
  962.  
  963. ΓòÉΓòÉΓòÉ 4.8.3. Dlls ΓòÉΓòÉΓòÉ
  964.  
  965. Displays the list of Dynamic Link Libraries used by the target application. 
  966.  
  967.  
  968. ΓòÉΓòÉΓòÉ 4.8.4. Registers ΓòÉΓòÉΓòÉ
  969.  
  970. Displays the processor registers and their values.  This list is updated at 
  971. each instruction step. 
  972.  
  973.  
  974. ΓòÉΓòÉΓòÉ 4.8.5. Edit Registers ΓòÉΓòÉΓòÉ
  975.  
  976. This command allows you to edit the contents of the registers. 
  977.  
  978.  
  979. ΓòÉΓòÉΓòÉ 4.8.6. Coprocessor Regs ΓòÉΓòÉΓòÉ
  980.  
  981. Displays the coprocessor registers, stack, and their values. This list is 
  982. updated at each instruction step. See Coprocessor Window Details for more 
  983. information. 
  984.  
  985.  
  986. ΓòÉΓòÉΓòÉ 4.9. Help Pulldown ΓòÉΓòÉΓòÉ
  987.  
  988. The Help pulldown contains help for SD386 and its user interface. Here are the 
  989. functions available on the Help pulldown: 
  990.  
  991. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  992. Γöé PULLDOWN           Γöé ACTION                     Γöé
  993. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  994. Γöé General Help         Γöé Display general information about SD386    Γöé
  995. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  996. Γöé Keys Help           Γöé Display the various key assignments.      Γöé
  997. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  998.  
  999.  
  1000. ΓòÉΓòÉΓòÉ 4.9.1. General Help ΓòÉΓòÉΓòÉ
  1001.  
  1002. SD386 is a source-level debugger for ╨½. It debugs programs compiled with IBM C 
  1003. Set/2, IBM C-Set++, or Microsoft C. SD386 debugs 32-bit, 16-bit, and mixed 16- 
  1004. and 32-bit applications. SD386 has full keyboard and mouse support. It has a 
  1005. full set of accelerator keys. It has an action bar with these pull-downs: 
  1006.  
  1007. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  1008. Γöé MENU     Γöé DESCRIPTION                          Γöé
  1009. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1010. Γöé File     Γöé File functions, browse, restart, & quit.            Γöé
  1011. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1012. Γöé Run      Γöé Execute the target application in various ways.        Γöé
  1013. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1014. Γöé Breakpoints  Γöé Set/clear various kinds of breakpoints.            Γöé
  1015. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1016. Γöé Search    Γöé Text string search functions.                 Γöé
  1017. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1018. Γöé Data     Γöé Watch, show, expand, and edit data items.           Γöé
  1019. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1020. Γöé View     Γöé SD386 window selection.                    Γöé
  1021. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1022. Γöé Settings   Γöé Colors, exceptions, assembler settings.            Γöé
  1023. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1024. Γöé Misc     Γöé Call stack, thread, DLL, and register info.          Γöé
  1025. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1026. Γöé Help     Γöé Display general and keyboard help information.         Γöé
  1027. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  1028.  
  1029. You can use the mouse or keyboard to select a line in the source window.  Click 
  1030. the right mouse button on a line to bring up a menu of functions available for 
  1031. that line.  Generally, you can use the mouse anywhere you can use the keyboard. 
  1032. Use the up and down arrows on the action bar to change the size of the Data 
  1033. window. 
  1034.  
  1035.  
  1036. ΓòÉΓòÉΓòÉ 4.9.2. Keys Help ΓòÉΓòÉΓòÉ
  1037.  
  1038. Displays a list of your current accelerator key settings. 
  1039.  
  1040.  
  1041. ΓòÉΓòÉΓòÉ 5. SD386 Window Details ΓòÉΓòÉΓòÉ
  1042.  
  1043.  
  1044. ΓòÉΓòÉΓòÉ 5.1. Data Window Details ΓòÉΓòÉΓòÉ
  1045.  
  1046. You have already seen an example of the Data window that appears at the top of 
  1047. the debugger's screen. When you enter this area with the Data pulldown in the 
  1048. View menu, you can edit the formulas and the displayed storage. Use the Data 
  1049. function (default key F2) again to leave this area. 
  1050.  
  1051. SD386 uses two different colors for the Source and Data windows. When the Data 
  1052. window is active, i.e., the cursor is in the Data window, an extra colored line 
  1053. separates the two windows. This information line also tells you which line in 
  1054. the Data window the cursor is on. 
  1055.  
  1056. If the Data window is size zero (its initial size), then the Data function 
  1057. toggles between a Data window of maximum and minimum size. You may view both 
  1058. data and code at the same time by using the arrows on the Action Bar to expand 
  1059. or shrink the Data window. 
  1060.  
  1061. To make changes to the Data window, place the cursor in the Data window. Then 
  1062. use the cursor and tab keys to move the cursor to the area you wish to change. 
  1063.  
  1064.  
  1065. ΓòÉΓòÉΓòÉ 5.1.1. Formulas and Expressions ΓòÉΓòÉΓòÉ
  1066.  
  1067. Formulas and expressions can involve variable names as long as these variables 
  1068. are known to SD386. Which variables are known depends on the compiler used. 
  1069.  
  1070. If you use the IBM C Set/2 compiler with the /Ti option or the Microsoft C 
  1071. compiler with the /Zi option, then all functions, variables, and parameters are 
  1072. known to the debugger. The type of each variable is known whether it is a 
  1073. simple type, struct, union, enum, or user-defined typedef. 
  1074.  
  1075. Note:  You can select variables to be viewed or watched with the Show Var, Show 
  1076. Var->, Watch Var, and Watch Var-> functions in the Source window. See Data 
  1077. Pulldown for more details about these functions. These functions work on 
  1078. non-executable as well as executable lines. So, you can place your cursor on a 
  1079. variable name on its declaration line in your source code and view it with one 
  1080. of the functions mentioned. 
  1081.  
  1082.  
  1083. ΓòÉΓòÉΓòÉ 5.1.1.1. Formula Syntax ΓòÉΓòÉΓòÉ
  1084.  
  1085. Formulas in the Data window and expressions in other debugger contexts are 
  1086. composed of: 
  1087.  
  1088. o variable names known to SD386 
  1089. o the Intel register names ax, bx, cx, dx, si, di, bp, sp, ds, es, ss, cs, ip 
  1090. o the Intel register names eax, ebx, ecx, edx, esi, edi, ebp, esp, eip 
  1091. o numeric constants, decimal or hexadecimal (see below) 
  1092. o the plus (+) and minus (-) operators 
  1093. o the multiply (*) operator 
  1094. o the unary pointer dereference (*) operator (only at the start of the formula) 
  1095. o the address of (&) operator (only at the start of the formula) 
  1096. o the pointer operator (->) 
  1097. o the member operator (.) to display members of structs or unions 
  1098. o the subscript operator ([]). Subscripts must be constants or simple 
  1099.   variables; they may not be expressions or complex variables. 
  1100.  
  1101. Note:  For help with formulas, SD386 has a context-sensitive help feature. 
  1102. While you are typing the formula, you can press F1 and SD386 displays detailed 
  1103. information about what you're allowed to put in the formula. 
  1104.  
  1105. When SD386 evaluates a formula, variable and parameter names evaluate to their 
  1106. addresses, register names evaluate to the contents of the named register, and 
  1107. constants evaluate to integers. A formula yields an address only if a segment 
  1108. is given (e.g., ss:esp) or implied through use of a variable or parameter name. 
  1109. Formulas with no segment (e.g., ax+1) yield scalar values. 
  1110.  
  1111. Parentheses are not allowed and all operators have equal precedence. 
  1112. Expressions are evaluated from left to right except that a pointer dereference 
  1113. operator is done last (i.e., it applies to the address specified by the rest of 
  1114. the formula). 
  1115.  
  1116. Beware that this differs from the way that the C language interprets 
  1117. expressions. For example, if array is an array of characters, array+2 refers to 
  1118. the 2nd byte beyond array (as in C), and i+2 refers to the 2nd byte beyond i 
  1119. (whereas the C interpretation of i+2 is the value of i plus 2). 
  1120.  
  1121. Notice that although the area of the display devoted to the formula provides 
  1122. only a ten-character field, you may type expressions up to 46 characters long. 
  1123. When you type Enter, the display field will be truncated to ten characters, but 
  1124. the displayed value will still be correct. To see the full underlying formula, 
  1125. move the cursor to that line and type a left or right cursor key. 
  1126.  
  1127. SD386 accepts simple variable names, i.e., variables which are chars, ints, 
  1128. etc., as array indices. For example, SD386 can evaluate array[myint] just like 
  1129. it evaluates array[3]. 
  1130.  
  1131.  
  1132. ΓòÉΓòÉΓòÉ 5.1.1.2. Numeric Constants in Debugger Expressions ΓòÉΓòÉΓòÉ
  1133.  
  1134. Numbers may be treated as either decimal or hexadecimal in expressions parsed 
  1135. by SD386. The rules are as follows: 
  1136.  
  1137.  1. A "0x" forces the number to be treated as hexadecimal. For example, the 
  1138.     number "0x10" is hexadecimal 10 (decimal 16). 
  1139.  2. Any number appearing in an expression which contains a colon (":") is 
  1140.     treated as hexadecimal. For example, in the following expression 
  1141.  
  1142.         47:5c+4
  1143.     both the 5c and the 4 are treated as hex. 
  1144.  3. Any other number is treated as a decimal number. For example, the 
  1145.     expression "alphabet[25]" treats the 25 as a decimal subscript. 
  1146.  
  1147.  
  1148. ΓòÉΓòÉΓòÉ 5.1.2. How Variables are Displayed ΓòÉΓòÉΓòÉ
  1149.  
  1150. SD386 displays various variable types in default formats. You can change the 
  1151. display format for each variable. See Data Display Format Options for 
  1152. information. The default formats are: 
  1153.  
  1154. Variable Type     Display Format 
  1155. Char              Hex value followed by ASCII character in quotes 
  1156. Int               Two-byte decimal and corresponding hex value 
  1157. Long              Four-byte decimal and corresponding hex value 
  1158. Float             Four-byte floating-point 
  1159. Double            Eight-byte floating-point 
  1160. Ptr               Selector:Offset => contents 
  1161. Char array        Hex value (16 bytes per line) followed by corresponding ASCII 
  1162.                   chars 
  1163. Int array         [Element number] followed by decimal contents - one element 
  1164.                   per line 
  1165. Struct, union     membername: contents as above - one member per line 
  1166.  
  1167.  
  1168. ΓòÉΓòÉΓòÉ 5.1.3. Hiding the Data Window ΓòÉΓòÉΓòÉ
  1169.  
  1170. The Data window and its contents can be hidden and re-shown with the Data 
  1171. Show/Hide pulldown on the View menu. 
  1172.  
  1173.  
  1174. ΓòÉΓòÉΓòÉ 5.1.4. Data Display Format Options ΓòÉΓòÉΓòÉ
  1175.  
  1176. You can choose to display a data item in one of several formats with the Format 
  1177. Var function. To bring up the Format Var menu of format choices, put the cursor 
  1178. in the Data window under the name of the data item you wish to format and press 
  1179. C_Enter or use the mouse to select Format Var in the Data pulldown. 
  1180.  
  1181. The options for formatting the display of a variable are: 
  1182.  
  1183. Hex         Displays storage as a sequence of hexadecimal bytes. 
  1184. Char        Displays a variable as a single ASCII character. 
  1185. Int         Displays a variable as a decimal (2-byte) integer. 
  1186. Long        Displays a variable as a decimal (4-byte) integer. 
  1187. Float       Displays a variable as a floating point (4-byte) number. 
  1188. Double      Displays a variable as a double-precision (8-byte) floating point 
  1189.             number. 
  1190. (.native)   This option's actual wording depends on the type of the formula the 
  1191.             cursor is on and shows the current type of the expression. If you 
  1192.             select this option, the variable will be reformatted according to 
  1193.             the indicated type. 
  1194. ?           Any type. Selecting this option will result in a prompt requesting 
  1195.             a type name. The variable will be formatted as indicated by the 
  1196.             type, which may be one of the following types: 
  1197.  
  1198.    o char 
  1199.    o int 
  1200.    o long 
  1201.    o uchar 
  1202.    o uint 
  1203.    o ulong 
  1204.    o float 
  1205.    o double 
  1206.    o @var 
  1207.  
  1208.             The @var type tells SD386 to format the variable with the type of 
  1209.             the variable "var" For example, use @mystruct to format a variable 
  1210.             with the mystruct type. 
  1211.  
  1212.             If you use the IBM C Set/2 compiler with the /Ti option, or the 
  1213.             Microsoft C compiler /Zi option, you may also specify any program 
  1214.             defined type. An asterisk (*) may also be added after any one of 
  1215.             the above types to indicate a pointer to the type. 
  1216.  
  1217.             Use this user-defined typecast to format any block of storage as 
  1218.             any available variable type. 
  1219.  
  1220.  
  1221. ΓòÉΓòÉΓòÉ 5.1.5. Bitfield Handling ΓòÉΓòÉΓòÉ
  1222.  
  1223. Implementation of bitfields is compiler dependent and as such all compilers 
  1224. choose a different way to do it. SD386 does two things in the display of bit 
  1225. fields. First, it shows the bit pattern. Second, if possible, it shows the 
  1226. pattern within the containing byte, word, or dword of storage. SD386 can do 
  1227. this for all compilers it supports except IBM C Set/2. In this case, since bit 
  1228. assignment is byte based and assignments are made from low order to high order 
  1229. bits, the bit field may span two or more bytes. When this happens SD386 only 
  1230. shows the bit pattern and abandons trying to show the bit pattern within the 
  1231. containing storage. 
  1232.  
  1233. Example of bit fields for some compilers 
  1234.  
  1235. Following is a simple example of some bit field definitions and some assigned 
  1236. values. The bit pattern in storage is shown below for some compilers. 
  1237.  
  1238.       struct {
  1239.          unsigned int a : 1;
  1240.          unsigned int b : 4;
  1241.          unsigned int c : 6;
  1242.          unsigned int d : 8;
  1243.  
  1244.       } flags;
  1245.  
  1246.        void
  1247.       main()
  1248.       {
  1249.        flags.a = 1;
  1250.        flags.b = 12;
  1251.        flags.c = 57;
  1252.        flags.d = 195;
  1253.       }
  1254.  
  1255. IBM C/2 1.1 & Microsoft C 6.00 
  1256.  
  1257. Bits are assigned from 0 to 15. The maximum size of a bit field is sixteen 
  1258. bits. Several bitfields may be contained within a word of storage but a bit 
  1259. field will never span words. 
  1260.  
  1261.    111111               111111
  1262.    5432109876543210     5432109876543210
  1263.    ................     ................
  1264.                   1 a
  1265.               1100  b
  1266.         111001      c
  1267.                                 11000011 d
  1268.  
  1269. CL386 
  1270.  
  1271. Bits are assigned from 0 to 31. The maximum size of a bit field is 32 bits. 
  1272. Several bit fields may be contained within a dword of storage, but a bit field 
  1273. will never span dwords. 
  1274.  
  1275.    3222222222221111111111
  1276.    10987654321098765432109876543210
  1277.    ................................
  1278.                                   1 a
  1279.                               1100  b
  1280.                         111001      c
  1281.                 11000011            d
  1282.    .............
  1283.  
  1284. IBM C Set/2 
  1285.  
  1286. Bit assignment is byte based in a bit string format. Bits within bytes are 
  1287. assigned from 0 to 7. Several bit fields may be contained within a byte of 
  1288. storage and a bit field may span bytes or several bytes. When a bit field spans 
  1289. bytes, SD386 chooses to show the bit pattern and does not try to show the 
  1290. pattern within the containing storage. 
  1291.  
  1292.    76543210 76543210  76543210 76543210
  1293.    ........ ........  ........ ........
  1294.           1                             a
  1295.       1100                              b
  1296.    001           111                    c <- spans 2 bytes
  1297.                                            SD386 shows as 111001.
  1298.             00011          110          d <- spans 2 bytes
  1299.                                            SD386 shows as 11000011.
  1300.  
  1301.  
  1302. ΓòÉΓòÉΓòÉ 5.2. Data Expansion Window Details ΓòÉΓòÉΓòÉ
  1303.  
  1304. The Data Expansion window provides an expanded view of a variable such as a 
  1305. member of a structure or union. To expand a variable into the window, place the 
  1306. cursor on a line containing the variable in either the Source or Data window 
  1307. and choose the Expand Var pulldown on the Data menu. 
  1308.  
  1309. If the member is a structure or union, its components will be displayed in the 
  1310. Data Expansion window. If the member is a pointer to another structure, etc., 
  1311. the contents of the variable pointed to by the pointer will be displayed in the 
  1312. Data Expansion window. 
  1313.  
  1314. The window also allows you to easily traverse linked lists. For example, if you 
  1315. use structures with next pointers to create linked lists, you can traverse the 
  1316. linked list by using the Data Expansion window keys to move up and down in the 
  1317. list. In fact, it's easiest if you create your structures with the first member 
  1318. as the next pointer. For example: 
  1319.  
  1320. typedef struct node
  1321. {
  1322.   struct node *next;
  1323.   char name[20];
  1324.   char ssnum[11];
  1325. } NODE;
  1326.  
  1327. To traverse a linked list, put the first element into the Data window. Then, 
  1328. place the cursor on the line for the next pointer and press the key for the 
  1329. Expand Var function. The next list element will be displayed in the Data 
  1330. Expansion window. To continue to traverse down the linked list, repeatedly 
  1331. press the Right Arrow or Enter key. With each key, SD386 will display the next 
  1332. element in the list (pointed to by next). To traverse back up the linked list, 
  1333. repeatedly press the Left Arrow key. With each key, SD386 will display the 
  1334. previous element. To leave the Data Expansion window, press the Esc key. 
  1335.  
  1336.  
  1337. ΓòÉΓòÉΓòÉ 5.3. Coprocessor Window Details ΓòÉΓòÉΓòÉ
  1338.  
  1339. The example below is from a typical co-processor register display. The layout 
  1340. and function of the registers is consistent with the documentation in the Intel 
  1341. 30387 Programmer's Reference Manual. 
  1342.  
  1343. 0     .... ................
  1344.  
  1345. 1     .... ................
  1346.  
  1347. 2     .... ................
  1348.  
  1349. 3     .... ................
  1350.  
  1351. 4     .... ................
  1352.  
  1353. 5     .... ................
  1354.  
  1355. 6 ST0 0000 0000000000000000
  1356.   +0.0000000000000000000000
  1357. 7 ST1 3FFF C000000000000000
  1358.   +1.5000000000000000000000
  1359.  
  1360.             C   CCCESPUOZDI
  1361.            B3TOP210SFEEEEEE
  1362. Status:    1011000010000100
  1363.                RCPC  PUOZDI
  1364. Control:   0000001101100010
  1365.  
  1366. The physical registers, numbered 0-7, are fixed. The logical registers, 
  1367. ST0-ST7, are a function of the current state of the stack and will move up and 
  1368. down in a stack fashion as a function of stack usage. In this example, there 
  1369. are two numeric values on the stack in logical registers ST0 and ST1. ST0 is 
  1370. contained in physical register 6 and ST1 is contained in physical register 7. 
  1371. ST0 is always the top of the stack. 
  1372.  
  1373. Each stack value is shown in hex and decimal format. There are four bytes of 
  1374. sign + exponent and 16 bytes (64 bits) of significand. The decimal values are 
  1375. shown with 19 bits of precision. See the Intel documentation for a discussion 
  1376. of numeric precision. This is a subject well beyond the scope of this 
  1377. documentation. 
  1378.  
  1379. The Status and Control registers are also labeled according to the Intel 
  1380. documentation. Notice that the Status register contains one bit fields with two 
  1381. character vertical labels except the "TOP" field. This field is a three bit 
  1382. field and is labeled horizontally. 
  1383.  
  1384. Note:  Co-processor exceptions are reported on the first instruction after the 
  1385. offending instruction. This is how the hardware works. Most of the time, this 
  1386. will be the previous instruction, however, this is not guaranteed. 
  1387.  
  1388. When the exception is reported, the co-processor registers have already been 
  1389. reset to the init state, so you have an exception but the register information 
  1390. is useless. You will have to set a breakpoint on the previous instruction and 
  1391. restart to see the "real" state of the registers when the exception occurred. 
  1392.  
  1393. Essentially, the debugger can't get the registers at the time of the exception 
  1394. without restarting. We discussed this with the ╨½ developers but were told this 
  1395. would be a permanent restriction. One thing you can do is observe the Status 
  1396. register exception flags which will show the exception flag raised when the 
  1397. offending instruction executes. At this point, the registers should reflect the 
  1398. values causing the exception. 
  1399.  
  1400. For a complete discussion of co-processor function, see the following Intel 
  1401. reference books: 
  1402.  
  1403. o 80387 Programmer's Reference Manual 
  1404. o i486 Microprocesser Programmer's Reference Manual. 
  1405.  
  1406.  
  1407. ΓòÉΓòÉΓòÉ 5.4. Watchpoint Window Details ΓòÉΓòÉΓòÉ
  1408.  
  1409. You can access the 80386/80486 hardware debug registers by using SD386 
  1410. watchpoints. This is a debugging advantage provided with OS/2 2.x since 
  1411. previous releases of the operating system did not provide the API needed to 
  1412. access these registers. The debug registers can be used to set both instruction 
  1413. and data breakpoints. The most significant improvement comes with the ability 
  1414. to set data breakpoints. 
  1415.  
  1416. Debuggers typically implement data breakpoints by single stepping program 
  1417. instructions and examining the address locations to determine if a value has 
  1418. changed. This method is essentially useless for applications of any complexity. 
  1419. By using the debug registers, data breakpoints can be implemented without 
  1420. incurring the overhead of single stepping and can now become an integral part 
  1421. of the debugging process. 
  1422.  
  1423. SD386 implements access to the debug registers by providing a Watchpoint window 
  1424. via the Hardware Debug Registers pulldown. You are allowed to set a maximum of 
  1425. four watchpoints. This is a hardware restriction. The window lets you specify 
  1426. your watchpoints by entering information into a number of fields. All fields 
  1427. except the expression field have pre-defined values that you select by simply 
  1428. pressing the spacebar. In the expression field, you will enter any expression 
  1429. that evaluates to a size of 1,2, or 4 bytes. A complete description of the 
  1430. field entries for the Watchpoint window follows. You can also use Help while 
  1431. viewing the Watchpoint window to get online help. 
  1432.  
  1433. See the Intel 80386/80486 Programmer's reference manual for more information on 
  1434. the hardware debug registers. 
  1435.  
  1436. Watchpoint Window Functions 
  1437.  
  1438. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  1439. Γöé MOUSE INPUT    Γöé KEY INPUT     Γöé IF YOU WANT TO             Γöé
  1440. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1441. Γöé          Γöé UP/DOWN ARROW   Γöé Select a watchpoint           Γöé
  1442. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1443. Γöé          Γöé LEFT/RIGHT ARROW Γöé Tab to next field            Γöé
  1444. Γöé          Γöé OR TABS      Γöé                     Γöé
  1445. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1446. Γöé <SIZE>      Γöé          Γöé Set size of expression (1, 2, or 4   Γöé
  1447. Γöé          Γöé          Γöé bytes)                 Γöé
  1448. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1449. Γöé <SCOPE>      Γöé          Γöé Set scope of expression (local or    Γöé
  1450. Γöé          Γöé          Γöé global)                 Γöé
  1451. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1452. Γöé <TYPE>      Γöé          Γöé Set access type (Write, Read/Write, or Γöé
  1453. Γöé          Γöé          Γöé Execute)                Γöé
  1454. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1455. Γöé <STATUS>     Γöé          Γöé Set status (enabled or disabled)    Γöé
  1456. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1457. Γöé <HELP>      Γöé F1        Γöé See the Help panel           Γöé
  1458. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1459. Γöé <ENTER>      Γöé ENTER       Γöé Put in the watchpoints         Γöé
  1460. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1461. Γöé <CANCEL>     Γöé ESC        Γöé Exit without any action         Γöé
  1462. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1463. Γöé NOTE:  The Expression must evaluate to a size of 1,2 or 4 bytes.       Γöé
  1464. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1465. Γöé NOTE:  An '*' before the address field indicates SD386 aligned address.    Γöé
  1466. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  1467.  
  1468. Note:  Size lengths of 2 and 4 bytes must be word and dword aligned 
  1469. respectively. SD386 enforces the necessary alignment and annotates the address 
  1470. with an "*" if alignment is necessary. 
  1471.  
  1472. Note:  You cannot modify the Addr field.  If you want this field to contain a 
  1473. specific address, enter it into the expression field. 
  1474.  
  1475. Note:  Local watchpoints are specific to a single process - the application 
  1476. you're debugging. Global watchpoints are effective in the context of any 
  1477. process. If you use a global watchpoint, you may get many more hits than you 
  1478. expect because many processes may include the address you specify. Currently, 
  1479. SD386 filters its own process id so hits inside SD386 will not be displayed. 
  1480.  
  1481. Note:  Watchpoint types can be Write, ReadWrite, or Execute. Write means the 
  1482. watchpoint will be hit only when the specified address is written to. ReadWrite 
  1483. means the watchpoint will be hit when the specified address is accessed (read 
  1484. from or written to). Execute means the watchpoint will be hit when the 
  1485. specified address is executed. 
  1486.  
  1487.  
  1488. ΓòÉΓòÉΓòÉ 5.5. Thread Window Details ΓòÉΓòÉΓòÉ
  1489.  
  1490. The SD386 thread selection window allows you to choose which threads are 
  1491. allowed to run and which are frozen. The thread status consists of two parts: 
  1492. the frozen (non-runnable) / thawed (runnable) state, and the actual state based 
  1493. on resources the thread may be waiting on. This actual state is runnable (the 
  1494. thread is not blocked on a resource) or blocked. You can choose to freeze or 
  1495. thaw individual threads, freeze or thaw all threads, and display the source 
  1496. filename and function name associated with each thread. 
  1497.  
  1498. If you freeze all of your application's threads and then attempt to run your 
  1499. application, it will lock up. 
  1500.  
  1501. Selecting a thread as the one to execute does not ensure that it will be the 
  1502. one that ╨½ allows to run unless you single step. ╨½ will look that the priority 
  1503. of all thawed threads and will allow the one with the highest priority to run 
  1504. if you run the application (i.e., you use the Run function). If you use the 
  1505. Single Step function, however, ╨½ ensures that only the selected thread is 
  1506. stepped. The other threads do not get time slices in this case. 
  1507.  
  1508. Thread Window Functions 
  1509.  
  1510. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  1511. Γöé MOUSE INPUT    Γöé KEY INPUT     Γöé IF YOU WANT TO             Γöé
  1512. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1513. Γöé          Γöé UP/DOWN ARROW   Γöé Highlight a thread           Γöé
  1514. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1515. Γöé <SELECT>     Γöé SPACE       Γöé Select highlighted thread        Γöé
  1516. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1517. Γöé <NAMES>      Γöé A         Γöé Toggle state, filename, line number,  Γöé
  1518. Γöé          Γöé          Γöé and function info            Γöé
  1519. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1520. Γöé <FREEZE>     Γöé F         Γöé Freeze highlighted thread        Γöé
  1521. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1522. Γöé <THAW>      Γöé T         Γöé Thaw highlighted thread         Γöé
  1523. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1524. Γöé <FREEZE ALL>   Γöé R         Γöé Freeze all threads           Γöé
  1525. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1526. Γöé <THAW ALL>    Γöé H         Γöé Thaw all threads            Γöé
  1527. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1528. Γöé <ENTER>      Γöé ENTER       Γöé Accept current thread status      Γöé
  1529. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1530. Γöé <CANCEL>     Γöé ESC        Γöé Exit without any action         Γöé
  1531. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1532. Γöé <HELP>      Γöé F1        Γöé See the Help panel           Γöé
  1533. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1534. Γöé NOTE:  The Expression must evaluate to a size of 1,2 or 4 bytes.       Γöé
  1535. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1536. Γöé NOTE:  An '*' before the address field indicates SD386 aligned address.    Γöé
  1537. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  1538.  
  1539.  
  1540. ΓòÉΓòÉΓòÉ 5.6. Exception Window Details ΓòÉΓòÉΓòÉ
  1541.  
  1542. Exception Window Functions 
  1543.  
  1544. The SD386 exception notification window allows you to choose the processor 
  1545. exceptions for which you will be notified. You can choose to be notified or not 
  1546. for each of the defined exceptions. You can also reset the exception 
  1547. notifications to defaults and save your selections to the SD386 profile. 
  1548.  
  1549. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  1550. Γöé MOUSE INPUT    Γöé KEY INPUT     Γöé IF YOU WANT TO             Γöé
  1551. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1552. Γöé LEFT CLICK    Γöé UP/DOWN ARROW   Γöé Select an exception           Γöé
  1553. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1554. Γöé MOVE & LEFT    Γöé LEFT/RIGHT    Γöé Move to next field           Γöé
  1555. Γöé CLICK       Γöé ARROWS OR TAB   Γöé                     Γöé
  1556. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1557. Γöé <NEXT> OR LEFT  Γöé SPACE       Γöé Switch to next notification option   Γöé
  1558. Γöé CLICK       Γöé          Γöé                     Γöé
  1559. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1560. Γöé <DEFAULT>     Γöé D         Γöé Set all exception notifications to   Γöé
  1561. Γöé          Γöé          Γöé defaults                Γöé
  1562. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1563. Γöé <RESET>      Γöé R         Γöé Reset single exception notification to Γöé
  1564. Γöé          Γöé          Γöé default                 Γöé
  1565. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1566. Γöé <THAW>      Γöé T         Γöé Thaw highlighted thread         Γöé
  1567. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1568. Γöé <SAVE>      Γöé S         Γöé Save exception notifications to     Γöé
  1569. Γöé          Γöé          Γöé profile                 Γöé
  1570. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1571. Γöé <ENTER>      Γöé ENTER       Γöé Accept current exception notifications Γöé
  1572. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1573. Γöé <CANCEL>     Γöé ESC        Γöé Exit without any action         Γöé
  1574. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1575. Γöé <HELP>      Γöé F1        Γöé See the Help panel           Γöé
  1576. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  1577.  
  1578.  
  1579. ΓòÉΓòÉΓòÉ 6. Remote Debugging ΓòÉΓòÉΓòÉ
  1580.  
  1581. SD386 gives you the ability to debug your applications remotely over a com 
  1582. port.  You can use a null modem connection at bit rates ranging from 300-38400 
  1583. bits per second(bps). The configuration supported is shown below. 
  1584.  
  1585. The SD386 machine consists of SD386 plus debug images of your application's 
  1586. executables and source code.  You only need the debug images for the 
  1587. executables that you want to debug.  All other executables will default to 
  1588. assembly level debugging. 
  1589.  
  1590. The probe machine consists of the Execution Services Probe(ESP) plus your 
  1591. application's executables.  These executables do not need debug info. However, 
  1592. they must be exactly the same version of the executables as on the SD386 
  1593. machine. 
  1594.  
  1595.  
  1596.                                                       Execution Services
  1597.   SD386 Machine                                       Probe(ESP) Machine
  1598.    -----------------                                   --------------------
  1599.   |                 |                                 |                    |
  1600.   | SD386           |<---------------//-------------->| ESP                |
  1601.   |                 |                                 |                    |
  1602.   | +               |                                 | +                  |
  1603.   |                 |                                 |                    |
  1604.   | YOURAPP         |                                 | YOURAPP            |
  1605.   | executables     |                                 | executables        |
  1606.   |                 |                                 |                    |
  1607.   | You only need   |                                 | Debug info is not  |
  1608.   | the ones you    |                                 | required in the    |
  1609.   | want to debug   |                                 | executables.       |
  1610.   | plus the source.|                                 |                    |
  1611.    -----------------                                   --------------------
  1612.  
  1613. Some reasons why you might want to consider using a remote debugging connection 
  1614. are: 
  1615.  
  1616. o You can avoid the hang conditions that occur when debugging PM apps by using 
  1617.   the null modem connection to the ESP machine. You will now be able to run 
  1618.   SD386 in a text window on the SD386 machine. 
  1619.  
  1620. o You can run the debugger and debuggee in separate sessions on separate 
  1621.   machines.  This will avoid the interference caused by resource sharing 
  1622.   between the debugger and the debuggee.  This includes the annoying screen 
  1623.   swapping caused by session switching between the debugger and the debuggee. 
  1624.  
  1625.  
  1626. ΓòÉΓòÉΓòÉ 6.1. Starting ESP ΓòÉΓòÉΓòÉ
  1627.  
  1628. To start ESP from the ╨½ command prompt, enter the ESP command and any ESP 
  1629. options. 
  1630.  
  1631. The full description of the command syntax is: 
  1632.  
  1633. ESP   [options]
  1634.  
  1635. options   may be any of the following. Each option must be prefaced with a dash 
  1636.           (-) or a slash (/). 
  1637.  
  1638.    /h or /?  Print this help screen. 
  1639.    /r[n]     Set the remote debugging bit rate. 
  1640.  
  1641.                               n=0   1    2    3    4    5     6
  1642.                           speed=300 1200 2400 4800 9600 19200 38400
  1643.  
  1644.    /an       Which Com(Async) port. For example, /a1 uses COM1: 
  1645.  
  1646.  
  1647. ΓòÉΓòÉΓòÉ 6.2. Com Port Settings ΓòÉΓòÉΓòÉ
  1648.  
  1649. SD386 and ESP set up the com port for you.  You do not have to issue any MODE 
  1650. commands.  The only option is the bit rate and you set this using the /rn 
  1651. invocation option. All transmissions are binary so the standard "N,8,1" 
  1652. settings are fixed by SD386 and ESP. 
  1653.  
  1654.  
  1655. ΓòÉΓòÉΓòÉ 6.3. Null Modem Connection ΓòÉΓòÉΓòÉ
  1656.  
  1657. Remote debugging is accomplished by connecting the com ports of two machines 
  1658. using a null modem cable.  You will need a "null modem" cable, or a standard 
  1659. serial cable plus a null modem adaptor. Normally, you will need female 
  1660. connectors on both ends of the cable. Also, be aware that even though you have 
  1661. the right cable, the cable's fastening hardware may be incompatible with the 
  1662. connectors on your computer. 
  1663.  
  1664.  
  1665. ΓòÉΓòÉΓòÉ 7. Hints and Tips ΓòÉΓòÉΓòÉ
  1666.  
  1667. This chapter contains various hints, tips, and information. We suggest that you 
  1668. scan through the headings and read those sections that seem relevant to you. 
  1669. Available topics are: 
  1670.  
  1671. Mixed Application and Device Driver Debugging: 
  1672.  
  1673. o Using SD386 with ASDT32 
  1674.  
  1675.   DLL info: 
  1676. o Debugging DLLs 
  1677.  
  1678.   Assumptions and Limitations: 
  1679. o Assumptions 
  1680. o General Limitations 
  1681. o Presentation Manager Limitations 
  1682.  
  1683.   Compiler Notes: 
  1684. o Notes for C Programs 
  1685.  
  1686.   Debugging speed: 
  1687. o Single Step Slowness 
  1688.  
  1689.  
  1690. ΓòÉΓòÉΓòÉ 7.1. Using SD386 with ASDT32 ΓòÉΓòÉΓòÉ
  1691.  
  1692. If you plan on using SD386 and ASDT32 concurrently, you must follow these 
  1693. instructions. Basically, when you load ASDT32 at start-up time, you must tell 
  1694. it to keep away from the normal debug interrupts or SD386 will not be able to 
  1695. execute your target program. To do this, issue these commands in your 
  1696. CONFIG.SYS file: 
  1697.  
  1698. DEVICE=ASDT32.EXE /K=4A /1 /3 /D
  1699. DEVICE=ASDT322.EXE
  1700.  
  1701. Once you've entered ASDT32, you must use the ASDT32 TI command to take 
  1702. interrupts 1, 3, and D. Before leaving ASDT32, you must free these interrupts 
  1703. again with the ASDT32 RI command. 
  1704.  
  1705. Note:  The =4A part of the option allows you to choose the keycode you wish to 
  1706. be the ASDT32 hotkey. The /K=4A option is not necessary to run these two tools 
  1707. concurrently. It does allow you to hot key into ASDT32 at any time. 
  1708.  
  1709.  
  1710. ΓòÉΓòÉΓòÉ 7.2. Debugging DLLs ΓòÉΓòÉΓòÉ
  1711.  
  1712. There are several things you must be careful about when debugging DLLs at the 
  1713. source level. While SD386 has tried to remove barriers to DLL source debugging, 
  1714. there are still system and debugging requirements. These are: 
  1715.  
  1716. o Your DLL itself must be available to the debugger. This means it must be in a 
  1717.   directory that is specified in the LIBPATH statement to OS/2. 
  1718.  
  1719.   We suggest you use the CHKDLL32 tool which can tell you if all of your DLLs 
  1720.   are available. 
  1721.  
  1722. o If you do not have DLL initialization code, you should not make any of your 
  1723.   functions in your DLL be a main function. For C, this means no main() 
  1724.   function. 
  1725.  
  1726. o To set breakpoints in dynamically loaded DLLs, or DLLs which are not loaded 
  1727.   until the calling program issues a DosLoadModule call, you must use deferred 
  1728.   breakpoints. To set a deferred breakpoint, use the Function entry or Address 
  1729.   pulldowns on the Breakpoints menu. Enter the function name or address of the 
  1730.   deferred breakpoint. SD386 will ask you if you want to defer the breakpoint 
  1731.   and set it on the first occurence, all occurences, or not at all. SD386 will 
  1732.   cause the breakpoint to be inserted in your DLL when that DLL is loaded. 
  1733.  
  1734.   For example, you can set a deferred breakpoint on a function name in your 
  1735.   dynamically linked (run-time) DLL and it will be hit when that function is 
  1736.   invoked after the DLL is loaded. 
  1737.  
  1738.   Another method is to force the dynamically linked (run-time) DLL to be 
  1739.   statically linked by IMPORTing one of the function names from the DLL to the 
  1740.   EXE file. See Get Function in the File for more information about this. 
  1741.  
  1742.  
  1743. ΓòÉΓòÉΓòÉ 7.3. Assumptions ΓòÉΓòÉΓòÉ
  1744.  
  1745. SD386 must make various assumptions in order to debug your application program. 
  1746. Assumptions which may confuse you are described in the following section (Call 
  1747. Stack). 
  1748.  
  1749.  
  1750. ΓòÉΓòÉΓòÉ 7.3.1. Call Stack ΓòÉΓòÉΓòÉ
  1751.  
  1752. To display the program call stack (the CallStack pulldown on the Miscmenu), 
  1753. which displays a "how I got here" list of active function calls, SD386 assumes 
  1754. that standard call prologs and epilogs are used. By this we mean that each of 
  1755. your functions executes standard entry and exit code at the top and bottom of 
  1756. the function. Some of your code may not use such standard entry and exit code. 
  1757. Therefore, SD386 allows you to ask for a more rigorous look at the call stack 
  1758. with the <Show All> function on the CallStack pulldown. Because this search can 
  1759. take some time to perform, SD386 does not use the more rigorous algorithm 
  1760. unless you ask for it on the CallStack pulldown. Typically, you will need to 
  1761. use the <Show All> function for unwinding exception handlers and handwritten 
  1762. thunks. 
  1763.  
  1764. Note:  If your module does not contain any automatic data, i.e., data that 
  1765. resides on the stack, then there may be no stack frame generated for that 
  1766. module. In that case, SD386 may not be able to include that module in its call 
  1767. stack display unless you choose the more rigorous search algorithm. 
  1768.  
  1769.  
  1770. ΓòÉΓòÉΓòÉ 7.4. General Limitations ΓòÉΓòÉΓòÉ
  1771.  
  1772. This release of SD386 has the following limitations: 
  1773.  
  1774. o No edit capability for character arrays inside a structure. 
  1775.  
  1776. o No edit capability for bit strings. 
  1777.  
  1778. o No special support for debugging multi-process applications or child 
  1779.   processes. 
  1780.  
  1781. SD386 has the following general limitations: 
  1782.  
  1783. o You must be very careful when debugging a Presentation Manager (PM) program 
  1784.   to not switch screen groups at the wrong time. 
  1785.  
  1786. o You should invoke SD386 from a full-screen session if you are debugging a PM 
  1787.   application. This lessens the chance of a lockup due to PM message queue 
  1788.   traffic problems. 
  1789.  
  1790.   See Presentation Manager Limitations for more information. 
  1791.  
  1792.  
  1793. ΓòÉΓòÉΓòÉ 7.5. Presentation Manager Limitations ΓòÉΓòÉΓòÉ
  1794.  
  1795. In general, you should not indiscriminately switch screen groups (with the 
  1796. system key sequences C_Esc or A_Esc) because PM will lock up waiting for the 
  1797. target (debuggee) program to service its messages. Since the debuggee is under 
  1798. the control of a debugger, it cannot service its messages under some 
  1799. situations. If you switch screen groups and conditions are right (wrong?), you 
  1800. may end up with a system that is locked up. This condition exists because of 
  1801. the single-thread message handling characteristics of PM. It is improved in 
  1802. OS/2 2.x, but there are still instances where you can cause system problems 
  1803. when switching screen groups. 
  1804.  
  1805. Also, you should invoke SD386 from a full-screen session instead of from a 
  1806. window if you are debugging a PM application. This lessens the chance of a 
  1807. lockup due to PM message queue traffic problems. If you invoke SD386 from a 
  1808. window and debug a PM application, you risk system lockup because of this PM 
  1809. message queue limitation. 
  1810.  
  1811.  
  1812. ΓòÉΓòÉΓòÉ 7.6. Notes for C Programs ΓòÉΓòÉΓòÉ
  1813.  
  1814. To ensure maximum source-level support for C programs, you must use the 
  1815. following options: 
  1816.  
  1817. IBM C Set/2: /Ti /O- 
  1818. Microsoft C: /Zi /Od 
  1819. LINK386:    /CO or /DE 
  1820.  
  1821.  
  1822. ΓòÉΓòÉΓòÉ 7.6.1. Source in Include Files ΓòÉΓòÉΓòÉ
  1823.  
  1824. SD386 is unable to debug source you place in include (.h) files. You should 
  1825. place all code in source (.c) files and use include files for 
  1826. non-code-producing statements, decarations, prototypes, and comments. 
  1827.  
  1828.  
  1829. ΓòÉΓòÉΓòÉ 7.6.2. Source-level Support ΓòÉΓòÉΓòÉ
  1830.  
  1831. SD386 does not yet provide full source-level support for C programs. In 
  1832. particular, the following capabilities are not yet available: 
  1833.  
  1834. o Program scope support. 
  1835.  
  1836.   In the Data window, SD386 does not clearly delineate which stack frame a 
  1837.   local variable applies to. 
  1838.  
  1839. o Evaluation of C expressions. 
  1840.  
  1841.   SD386 does not have full C expression evaluation in the Data window and in 
  1842.   user input areas such as conditional breakpoints. 
  1843.  
  1844.  
  1845. ΓòÉΓòÉΓòÉ 7.6.3. Floating Point Suggestions for C ΓòÉΓòÉΓòÉ
  1846.  
  1847. If you use floating point, we suggest that you use an 80387 co-processor. There 
  1848. are enough problems with the floating-point emulation that it is much safer to 
  1849. use the co-processor. 
  1850.  
  1851.  
  1852. ΓòÉΓòÉΓòÉ 7.7. Single Step Slowness ΓòÉΓòÉΓòÉ
  1853.  
  1854. If you single step across a source line that compiles into a lengthy set of 
  1855. machine instructions, your machine may appear to be hung. Actually, it is 
  1856. single stepping many instructions. An example in C is: 
  1857.  
  1858. for ( i = 1 ; i = n ; i++ )
  1859. {
  1860.   stmts;
  1861. }
  1862.  
  1863. In this case, if you single step across the for statement, execution will be 
  1864. very slow if n is large. 
  1865.  
  1866.  
  1867. ΓòÉΓòÉΓòÉ 8. Problem Determination ΓòÉΓòÉΓòÉ
  1868.  
  1869. The following sections detail scenarios and solutions for various debugging 
  1870. problems. These topics are available: 
  1871.  
  1872. o No Source Code describes errors trying to display your source for debugging. 
  1873. o Miscellaneous SD386 Errors describes various SD386 error messages and what to 
  1874.   do about them. 
  1875.  
  1876.  
  1877. ΓòÉΓòÉΓòÉ 8.1. No Source Code ΓòÉΓòÉΓòÉ
  1878.  
  1879. If you invoke SD386 on your program and end up viewing assembly code instead of 
  1880. source, there are several possible causes: 
  1881.  
  1882. o You did not link your program with the /CO option, which causes debug 
  1883.   information to be placed in the executable file. 
  1884.  
  1885.   In this case, the lower left-hand corner of the SD386 display will not 
  1886.   contain a source file name, just an executable file name. 
  1887.  
  1888.   In this case, the lower left-hand corner of the SD386 display will not 
  1889.   contain a source file name, just an executable file name. 
  1890.  
  1891. o You have your own run-time initialization code. 
  1892.  
  1893. o You are invoking a DLL that contains initialization code. SD386 stops in any 
  1894.   such DLL initialization code, which must be written in assembler. 
  1895.  
  1896.   In this case, the lower left-hand corner of the SD386 display will contain 
  1897.   the DLL name and possibly the source file name. 
  1898.  
  1899. o Your source files are not accessible by SD386. SD386 looks in the following 
  1900.   places (in order) for your source: 
  1901.  
  1902.     1. the current directory, 
  1903.     2. the directory specified to the compiler (if any), which ends up in the 
  1904.        EXE file for each OBJ file, 
  1905.     3. the directories specified in the SD386SRC environment variable, and 
  1906.     4. the directories in the system PATH. 
  1907.  
  1908. o In this case, the lower left-hand corner of the SD386 display will contain a 
  1909.   source file name as well as the executable file name. 
  1910.  
  1911. o You have renamed a source file. 
  1912.  
  1913.   In this case, the lower left-hand corner of the SD386 display will contain 
  1914.   the source file name it tried to find as well as the executable file name. 
  1915.  
  1916.   In this case, the lower left-hand corner of the SD386 display will contain 
  1917.   the source file name A.DEB instead of the real file name. 
  1918.  
  1919.  
  1920. ΓòÉΓòÉΓòÉ 8.2. Miscellaneous SD386 Errors ΓòÉΓòÉΓòÉ
  1921.  
  1922. Some bugs that appear to be in SD386 itself are caused by user action. In 
  1923. particular, the /Zl compiler option (suppress default library selection) in C 
  1924. can cause SD386 to have protection exceptions, go south, or otherwise appear 
  1925. sick. You should never use the C compiler option /Zl if you plan to debug the 
  1926. output from that compilation. While the output may be debuggable in some cases, 
  1927. in many cases the resulting EXE file's debug information is severely corrupted 
  1928. and causes SD386 to crash. 
  1929.  
  1930. List of Common SD386 Errors 
  1931.  
  1932. Unable to open the EXE file. You specified an incorrect name for the EXE file 
  1933.           to be debugged. SD386 was unable to find the EXE file. 
  1934. Unable to start session. rc=xxxxx. SD386 was unable to start your application 
  1935.           with DosStartSession. The return code indicates the DosStartSession 
  1936.           error that occurred. The return code from  is displayed. You can find 
  1937.           these return codes in file BSEERR.H in the ╨½ Toolkit. 
  1938. Unable to initialize EXE. SD386 was unable to start debugging your program with 
  1939.           DosDebug. Contact SD386 support for further assistance. 
  1940. Invalid EXE file. The EXE file you specified to be debugged is not an EXE file. 
  1941.           This is probably due to a problem building the file. 
  1942. Process Terminated. SD386 encountered a DosDebug error while starting your 
  1943.           application. Contact SD386 support for further assistance. 
  1944. User Profile Error. The SD386 profile that SD386 found contains errors. Use a 
  1945.           different SD386 profile or edit the profile to remove the errors. 
  1946. Cannot Find Entry Point. SD386 looks for the entry point for your application. 
  1947.           The entry point name depends on the language, compiler, and linkage 
  1948.           for your application. SD386 searches for the entry point for each 
  1949.           type of linkage that it knows about. Contact SD386 support if your 
  1950.           application was compiled and linked correctly and you get this 
  1951.           message. 
  1952. Cannot start session. Check DLL Path. SD386 was unable to find one of your 
  1953.           DLLs. Many times, one of the DLLs your program needs is not in a 
  1954.           sub-directory which is in the LIBPATH. SD386 is then unable to open 
  1955.           the DLL file. We suggest you use the CHKDLL32 program which will tell 
  1956.           you if all of your DLLs are available or which ones are unavailable. 
  1957.  
  1958.           Note:  One common error, especially if you're converting a 16-bit app 
  1959.           to 32-bit, is to compile some of your code as 16-bit when it really 
  1960.           should be 32-bit. If you link this erroneous 16-bit code in with your 
  1961.           32-bit code, you may get this error message with rc = 180. 
  1962. Too Many DLLs. SD386 ran out of room trying to initialize all of your DLLs. 
  1963.           SD386 has a limit of 1000 DLLs and your application has exceeded this 
  1964.           limit. Contact SD386 support. 
  1965. Bad Symbolic Info. SD386 encountered errors in the debug information in your 
  1966.           application. SD386 will allow assembler level debugging for the DLL 
  1967.           file in question. Contact SD386 support to help find out what the 
  1968.           problem is. 
  1969. No Code Segments. SD386 did not find any code segments in your application. 
  1970.           This is probably due to an error in putting your application 
  1971.           together. 
  1972. DLL Initialization Error. SD386 was unable to initialize one of your 
  1973.           application's DLLs at either the source or assembler level. 
  1974. Unrecognized invocation option. You entered an SD386 option that cannot be 
  1975.           recognized. See Starting SD386 for a list of valid options. 
  1976.  
  1977. Restarting... Informational - SD386 is restarting your application. 
  1978. CoProcessor Not Loaded SD386 cannot display the co-processor registers if your 
  1979.           machine does not have a co-processor installed. 
  1980. Unable to find SD386.PRO in DPATH You attempted to save settings to your 
  1981.           profile and SD386 cannot find the profile. 
  1982. Unable to save to profile [profilename] SD386 was unable to save your changes 
  1983.           to the profile. Contact SD386 support for assistance. 
  1984. Saving Colors to profile [profilename] Informational - SD386 is saving your 
  1985.           colors to your SD386 profile. 
  1986. Saving Exceptions to profile [profilename] Informational - SD386 is saving your 
  1987.           exception settings to your SD386 profile. 
  1988. Selecting Tid [threadID] Informational - SD386 is selecting the thread you 
  1989.           chose. 
  1990. Incorrect expression The expression you entered cannot be parsed by SD386. 
  1991. Enter a function  name or address Informational - SD386 is asking for a 
  1992.           function name or address to find. 
  1993. Enter file name Informational - SD386 is asking for a file name to find. 
  1994. Enter immediate or deferred name or address Informational - SD386 is asking for 
  1995.           a function name or address for a breakpoint. 
  1996. Can't find that SD386 was unable to find the text string you entered. 
  1997. Can't modify this data! SD386 was unable to store the changed data item in the 
  1998.           target application's data area. Contact SD386 support for assistance. 
  1999. Invalid value for data type You attempted to change data in memory to a value 
  2000.           that is incompatible with the data item's type. 
  2001.