Dynamic debugging technique

Last updated

DDT86.CMD in Digital Research CP/M-86 for the IBM Personal Computer Version 1.0 Digital Research CP-M-86 for the IBM Personal Computer Version 1.0 720x400.png
DDT86.CMD in Digital Research CP/M-86 for the IBM Personal Computer Version 1.0

Dynamic Debugging Technique (DDT) is a series of debugger programs originally developed for Digital Equipment Corporation (DEC) hardware, initially known as DEC Debugging Tape because it was distributed on paper tape. The name is a pun on the insecticide DDT. The first version of DDT was developed at MIT for the PDP-1 computer in 1961, but newer versions on newer platforms continued to use the same name. After being ported to other vendor's platforms and changing media, the name was changed to the less DEC-centric version. Early versions of Digital Research's CP/M and CP/M-86 kept the DEC name DDT (and DDT-86 and DDT-68K) for their debugger, however, now meaning Dynamic Debugging Tool. [1] [2] The CP/M DDT was later superseded by the Symbolic Instruction Debugger (SID, [3] ZSID, SID86, [4] and GEMSID) in DR DOS and GEM. [5] [6]

Contents

In addition to its normal function as a debugger, DDT was also used as a top-level command shell for the Massachusetts Institute of Technology (MIT) Incompatible Timesharing System (ITS) operating system; on some more recent ITS systems, "PWORD"—which implements a restricted subset of DDT's functionality—is run first and is overlaid with DDT as soon as the user logs in. DDT could run and debug up to eight processes (called "jobs" on ITS) at a time, such as several sessions of TECO, and DDT could be run recursively - that is, some or all of those jobs could themselves be DDTs (which could then run another eight jobs, and so on). These eight jobs were all given unique names, and the usual name for the original and top-most DDT was "HACTRN" ("hack-tran"). Guy L. Steele wrote a filk poem parody of Edgar Allan Poe's "The Raven," entitled The HACTRN.[ citation needed ]

DEC-10/DEC-20 DDT

DDT (Dynamic Debugging Technique), as implemented on the DECsystem-10 & DECSYSTEM-20 [7] allowed references to symbols within the programming being debugged. This feature loaded symbols from the .EXE executable file; a special version named SDDT used symbols from the running monitor and allowed system programmers to "peek" inside. [7]

See also

Related Research Articles

<span class="mw-page-title-main">Gary Kildall</span> American computer scientist and microcomputer entrepreneur (1942–1994)

Gary Arlen Kildall was an American computer scientist and microcomputer entrepreneur.

<span class="mw-page-title-main">DECSYSTEM-20</span> Type of mainframe computer

The DECSYSTEM-20 was a 36-bit Digital Equipment Corporation PDP-10 mainframe computer running the TOPS-20 operating system.

<span class="mw-page-title-main">CP/M</span> Discontinued family of computer operating systems

CP/M, originally standing for Control Program/Monitor and later Control Program for Microcomputers, is a mass-market operating system created in 1974 for Intel 8080/85-based microcomputers by Gary Kildall of Digital Research, Inc. Initially confined to single-tasking on 8-bit processors and no more than 64 kilobytes of memory, later versions of CP/M added multi-user variations and were migrated to 16-bit processors.

<span class="mw-page-title-main">TOPS-20</span>

The TOPS-20 operating system by Digital Equipment Corporation (DEC) is a proprietary OS used on some of DEC's 36-bit mainframe computers. The Hardware Reference Manual was described as for "DECsystem-10/DECSYSTEM-20 Processor".

MP/M is a discontinued multi-user version of the CP/M operating system, created by Digital Research developer Tom Rolander in 1979. It allowed multiple users to connect to a single computer, each using a separate terminal.

<span class="mw-page-title-main">CP/M-86</span> Discontinued computer operating system for x86 processors

CP/M-86 was a version of the CP/M operating system that Digital Research (DR) made for the Intel 8086 and Intel 8088. The system commands are the same as in CP/M-80. Executable files used the relocatable .CMD file format. Digital Research also produced a multi-user multitasking operating system compatible with CP/M-86, MP/M-86, which later evolved into Concurrent CP/M-86. When an emulator was added to provide PC DOS compatibility, the system was renamed Concurrent DOS, which later became Multiuser DOS, of which REAL/32 is the latest incarnation. The FlexOS, DOS Plus, and DR DOS families of operating systems started as derivations of Concurrent DOS as well.

<span class="mw-page-title-main">86-DOS</span> Discontinued computer operating system for x86 processors and predecessor to MS-DOS/PC DOS

86-DOS is a discontinued operating system developed and marketed by Seattle Computer Products (SCP) for its Intel 8086-based computer kit.

TOPS-10 System is a discontinued operating system from Digital Equipment Corporation (DEC) for the PDP-10 mainframe computer family. Launched in 1967, TOPS-10 evolved from the earlier "Monitor" software for the PDP-6 and PDP-10 computers; this was renamed to TOPS-10 in 1970.

<span class="mw-page-title-main">COM file</span> Type of simple executable file

A COM file is a type of simple executable file. On the Digital Equipment Corporation (DEC) VAX operating systems of the 1970s, .COM was used as a filename extension for text files containing commands to be issued to the operating system. With the introduction of Digital Research's CP/M, the type of files commonly associated with COM extension changed to that of executable files. This convention was later carried over to DOS. Even when complemented by the more general EXE file format for executables, the compact COM files remained viable and frequently used under DOS.

<span class="mw-page-title-main">Multiuser DOS</span> Family of CP/M- and DOS-compatible multi-user multi-tasking operating systems

Multiuser DOS is a real-time multi-user multi-tasking operating system for IBM PC-compatible microcomputers.

Relocation is the process of assigning load addresses for position-dependent code and data of a program and adjusting the code and data to reflect the assigned addresses. Prior to the advent of multiprocess systems, and still in many embedded systems, the addresses for objects were absolute starting at a known location, often zero. Since multiprocessing systems dynamically link and switch between programs it became necessary to be able to relocate objects using position-independent code. A linker usually performs relocation in conjunction with symbol resolution, the process of searching files and libraries to replace symbolic references or names of libraries with actual usable addresses in memory before running a program.

A source-to-source translator, source-to-source compiler, transcompiler, or transpiler is a type of translator that takes the source code of a program written in a programming language as its input and produces an equivalent source code in the same or a different programming language. A source-to-source translator converts between programming languages that operate at approximately the same level of abstraction, while a traditional compiler translates from a higher level programming language to a lower level programming language. For example, a source-to-source translator may perform a translation of a program from Python to JavaScript, while a traditional compiler translates from a language like C to assembler or Java to bytecode. An automatic parallelizing compiler will frequently take in a high level language program as an input and then transform the code and annotate it with parallel code annotations or language constructs.

<span class="mw-page-title-main">Debug (command)</span> Line-oriented debug utility in DOS

The line-oriented debugger DEBUG.EXE is an external command in operating systems such as DOS, OS/2 and Windows.

<span class="mw-page-title-main">CBASIC</span> Compiled BASIC programming language for CP/M

CBASIC is a compiled version of the BASIC programming language written for the CP/M operating system by Gordon Eubanks in 1976–1977. It is an enhanced version of BASIC-E.

In computer programming, a self-relocating program is a program that relocates its own address-dependent instructions and data when run, and is therefore capable of being loaded into memory at any address. In many cases, self-relocating code is also a form of self-modifying code.

<span class="mw-page-title-main">MS-DOS</span> Microsofts discontinued operating system

MS-DOS is an operating system for x86-based personal computers mostly developed by Microsoft. Collectively, MS-DOS, its rebranding as IBM PC DOS, and a few operating systems attempting to be compatible with MS-DOS, are sometimes referred to as "DOS". MS-DOS was the main operating system for IBM PC compatibles during the 1980s, from which point it was gradually superseded by operating systems offering a graphical user interface (GUI), in various generations of the graphical Microsoft Windows operating system.

<span class="mw-page-title-main">Command-line interface</span> Computer interface that uses text

A command-line interface (CLI) is a means of interacting with a device or computer program with commands from a user or client, and responses from the device or program, in the form of lines of text. Such access was first provided by computer terminals starting in the mid-1960s. This provided an interactive environment not available with punched cards or other input methods.

<span class="mw-page-title-main">Asymmetric multiprocessing</span>

An asymmetric multiprocessing system is a multiprocessor computer system where not all of the multiple interconnected central processing units (CPUs) are treated equally. For example, a system might allow only one CPU to execute operating system code or might allow only one CPU to perform I/O operations. Other AMP systems might allow any CPU to execute operating system code and perform I/O operations, so that they were symmetric with regard to processor roles, but attached some or all peripherals to particular CPUs, so that they were asymmetric with respect to the peripheral attachment.

A binary recompiler is a compiler that takes executable binary files as input, analyzes their structure, applies transformations and optimizations, and outputs new optimized executable binaries.

ISIS, short for Intel System Implementation Supervisor, is an operating system for early Intel microprocessors like the 8080. It was originally developed by Ken Burgett and Jim Stein under the management of Steve Hanna and Terry Opdendyk for the Intel Microprocessor Development System with two 8" floppy drives, starting in 1975, and later adopted as ISIS-II as the operating system for the PL/M compiler, assembler, link editor, and In-Circuit Emulator. The ISIS operating system was developed on an early prototype of the MDS 800 computer, the same type of hardware that Gary Kildall used to develop CP/M.

References

  1. Kildall, Gary Arlen (February 1978) [1976]. "A simple technique for static relocation of absolute machine code". Dr. Dobb's Journal of Computer Calisthenics & Orthodontia . People's Computer Company. 3 (2): 10–13 (66–69). ISBN   0-8104-5490-4. #22 ark:/13960/t8hf1g21p. Retrieved 2017-08-19. . Originally presented at: Kildall, Gary Arlen (1977) [22–24 November 1976]. "A Simple Technique for Static Relocation of Absolute Machine Code". Written at Naval Postgraduate School, Monterey, California, USA. In Titus, Harold A. (ed.). Conference Record: Tenth Annual Asilomar Conference on Circuits, Systems and Computers: Papers Presented November 22–24, 1976. Asilomar Hotel and Conference Grounds, Pacific Grove, California, USA: Western Periodicals Company. pp. 420–424. ISSN   1058-6393 . Retrieved 2021-12-06. (609 pages)
  2. CP/M Dynamic Debugging Tool (DDT). User's Guide (PDF). Digital Research. 1976. Archived (PDF) from the original on 2007-07-06. Retrieved 2023-02-11.
  3. SID Users Guide (PDF). Digital Research. 1978. 595-2549. Archived (PDF) from the original on 2019-10-20. Retrieved 2020-02-06. (4+69 pages)
  4. SID-86 User's Guide for CP/M-86 (2 ed.). Digital Research. August 1982 [March 1982]. SID86UG.WS4. Archived from the original on 2019-10-20. Retrieved 2020-02-06. (NB. A retyped version of the manual by Emmanuel Roche with Q, SR, and Z commands added.)
  5. Paul, Matthias R. (1997-05-24) [1991]. DRDOSTIP.TXT — Tips und Tricks für DR DOS 3.41 - 5.0. MPDOSTIP (in German) (47 ed.). Archived from the original on 2016-11-07. Retrieved 2016-11-07.
  6. Paul, Matthias R. (2002-01-09). "SID86". Newsgroup:  comp.os.cpm. Archived from the original on 2018-08-27. Retrieved 2018-04-08. […] Since the DR-DOS 7.03 DEBUG is still based on the old SID86.EXE, I suggest to run DEBUG 1.51 and enter the extended help system with ?? from the debug prompt. This will give you eight screens full of syntax and feature help. Some of these features were also supported by older issues. […]
  7. 1 2 Bering, Douglas E. (1975) [1968, 1969, 1970]. "Intro". Reference Manual: DDT (Dynamic debugging technique) and TDT (Tracing debugging technique. National Technical Information Service]. DEC-10-UDDTA-A-D. DDT (Dynamic debugging technique) and TDT (Tracing debugging technique) for PDP-11 systems