PRODUCT : Borland C++ NUMBER : 1038 VERSION : 3.1 OS : DOS DATE : October 19, 1993 PAGE : 1/3 TITLE : An overview of the Borland DOS Debuggers. -- Turbo Debugger and Profiler Info Sheet -- TD.EXE ======= Regular DOS debugger. Takes up about 300k of conventional memory. TD + your program + symbol table all must fit in 640k. Works with all memory managers, but can only load small to medium size application. If TDH386.SYS is loaded TD can use hardware breakpoints on a 386 machine. TD286.EXE ========= VCPI DOS extended debugger. Takes up about 80k of conventional memory. TD286 (the 80K portion) + your program must fit in 640k. Symbols are put in extended memory. Works with any VCPI compliant memory managers (QEMM, 386^MAX, EMM386 from DOS-5) as long as those managers are set up to provide EMS. If TD286 says there's not enough memory to load the program, configure your memory manager to provide more EMS, eg: 'DEVICE=EMM386 RAM 512' can be changed to 'DEVICE=EMM386 RAM 2048'. If TDH386.SYS is loaded TD286 can use hardware breakpoints on a 386 machine. With all device drivers and TSRs loaded high using a Memory Manager ( eg. QEMM or EMM386 ), you can usually end up with close to 600k or more free at the dos command line. TD286's VCPI compliancy makes it the ideal choice for debugging large size DOS application or applications which require the use of EMS provided by a 386 Memory Manager. TD386.EXE ========== Virtual Debugger which requires total control of the machine and, therefore, will not operate in the presence of 386 Memory Managers ( e.g. QEMM386, EMM386 or 386^MAX ). Although TDH386.SYS is required when using TD386, the device driver CAN be PRODUCT : Borland C++ NUMBER : 1038 VERSION : 3.1 OS : DOS DATE : October 19, 1993 PAGE : 2/3 TITLE : An overview of the Borland DOS Debuggers. used with either TD.EXE or TD286.EXE when hardware breakpoints are desirable. TD386 takes 0K of conventional memory (it's all in extended memory!) and leaves all of conventional memory (usually 640K - OS+Drivers+TSRs) to the program being debugged. You can think of TD386 as running two virtual-8086 DOS sessions, with TD.EXE + the symbol table running into one, and your application in the other. If you specify the -fxxxx option to TD386, it will allow the copy of TD.EXE in the v86 DOS box to put the symbol table into EMS that TD386 will provide. The program being debugged *CANNOT* use this EMS memory. TD386's requirements and the possible resulting conflicts with 386 Memory Managers make TD286 the optimal debugger. However, the requirements of some debugging sessions may be more appropriately satisfied by TD386. For example, to setting breakpoints on read/write to I/O locations or monitoring memory ranges of more than 16 bytes with Hardware breakpoint requires the use TD386. TD386 can also provide better support in trapping exceptions ( mainly exceptions 6 and 13 ). TPROF.EXE ========= Regular DOS profiler. Takes up about 250-300k of memory. TPROF + your program + symbols must fit in 640k. If you get the error: "Error Loading Program", the most probable cause it a lack of memory for the symbol table ( see. the note about the -fxxxx option with TF386 ) TF386.EXE ========= TF386 is the virtual Profiler. Its requirements are similar to TD386. Large applications ( or applications with large symbol tables ) will usually require the use of TF386. Like TD386, a - fxxxx switch may be specified if the applications symbols table and TPROF.EXE do not fit in a 'v86' box. TIPS WHEN DEBUGGING/PROFILING LARGE APPLICATIONS: PRODUCT : Borland C++ NUMBER : 1038 VERSION : 3.1 OS : DOS DATE : October 19, 1993 PAGE : 3/3 TITLE : An overview of the Borland DOS Debuggers. TD386's -fxxxx option: This option is used to tell TD386 (or TF386) to simulate EMS memory for the debugger (or profiler). The xxxx should be set to some unused 64k segment of memory like E000 or D000. It is configureable in case you have some hardware device in one location. Try -fE000 first. Try relinking the program using TLINK's /Vt switch to compress the debug info. This option is also available in the IDE ( OPTIONS|LINKER|SETTINGS ) and can be very helpful for C++ programs. Exclude debug information from certain modules. With TLINK, you can specify /v+ and /v- at any point to turn the debug info ON or OFF for various modules. In the IDE, the Project|Local Options can exclude the debug info. Adjust the debugger's overlay buffer -y<#> (This only affects TD.EXE and TPROF.EXE) DISCLAIMER: You have the right to use this technical information subject to the terms of the No-Nonsense License Statement that you received with the Borland product to which this information pertains.