Borland Turbo Debugger
Turbo Debugger (TD) was a machine-level debugger for MS-DOS executables, intended mainly for debugging Borland Turbo Pascal (TP), and later Turbo C (TC) programs, sold by Borland. This tool was a full-screen debugger displaying both TP or TC source and corresponding assembly-language instructions, with powerful capabilities for setting breakpoints, watching the execution of instructions, monitoring machine registers, etc. TD could be used for programs not generated by Borland compilers, but without showing source statements; it was by no means the only debugger available for non-Borland executables, and not a significant general-purpose debugger.
Although Borland's Turbo Pascal (TP) had useful single-stepping and conditional breakpoint facilities, the need for a more powerful debugger became apparent when TP started to be used for serious development. Initially a separate company, Turbopower, produced a debugger, T-Debug, and also their Turbo Analyst and Overlay Manager for Turbo Pascal for TP versions 1-3. Turbopower released T-Debug Plus 4.0 for TP 4.0 in 1988, but by then Borland's Turbo Debugger had been announced.
To use Turbo Debugger with source display, programs, or relevant parts of programs, had to be compiled with TP or TC with a conditional directive set which added debugging information to the compiled executable, which related source statements and corresponding machine code. The debugger would then be started (TD did not debug within the development IDE). After debugging the program would be recompiled without debugging information to reduce its size.
Later Turbo Debugger, the stand-alone Turbo Assembler (TASM), and Turbo Profiler were included with the compilers in the professional Borland Pascal and Borland C++ versions of the more restricted Turbo Pascal and Turbo C++ suites for MS-DOS. After the popularity of Microsoft Windows ended the era of MS-DOS software development, Turbo Debugger was bundled with TASM for low-level software development. For many years after the end of the MS-DOS era, Borland supplied Turbo Debugger with the last console-mode Borland C++ application development environment, version 5, and with Turbo Assembler 5.0. For many years both of these products were sold even though active development stopped on them. With Borland's reorganization of their development tools as CodeGear, all references to Borland C++ and Turbo Assembler vanished from their web site. The debuggers in later products such as C++ Builder and Delphi are based on the Windows debugger introduced with the first Borland C++ and Pascal versions for Windows.
The final version of Turbo Debugger came with several versions of the debugger program: TD.EXE was the basic debugger; TD286.EXE ran in protected mode, and TD386.EXE was a virtual debugger which used the TDH386.SYS device driver to communicate with TD.EXE. The TDH386.SYS driver also added breakpoints supported in hardware by the 386 and later processors to all three debugger programs. TD386 allowed some extra breakpoints that the other debuggers did not (I/O access breaks, ranges greater than 16 bytes, and so on). There was also a debugger for Windows 3 (TDW.EXE). Remote debugging was supported.
Most of the information in the paragraph above, and much more, is to be found in documentation files supplied with Turbo Debugger, in particular "TURBO DEBUGGER TIPS AND HINTS", HELPME!.TD and "USING THE HARDWARE DEBUGGING FEATURES", HDWDEBUG.TD.
Turbo Debugger and emulation
The original 1.0 release of Turbo Debugger for MS-DOS will run under simple MS-DOS emulators (DOSEMU, in an MS-DOS Window in Windows 95, 2000, etc.) The later versions attempt to control the underlying machine in a way not allowed by the host operating system (in which the emulator is running) and therefore do not work.
The last MS-DOS version of TD.EXE, 3.2, does run successfully in the 32-bit Windows XP NTVDM (i.e., in a DOS window, invoked with CMD.EXE), but TD286.EXE and TD386.EXE do not. Hardware breakpoints supported by the 386 and later processors are available if TDH386.SYS is loaded by including "DEVICE=<path>TDH386.SYS" in a CONFIG.NT file invoked when running TD.EXE.
- This paragraph is based on actual use of Turbo Debugger in an MS-DOS emulator. See illustration.
- InfoWorld 21 Mar 1988: Announcement of Turbopower T-Debug 4
- Advertisement for Turbo Debugger
- C++Builder product page
- This paragraph is based on running the actual debugger in DOS emulators.