278 votes
Accepted

Why does trying to break into the NT 3.1 kernel reboot my 486DX4 machine?

Short explation The Windows NT 3.1 kernel is incompatible with enhanced 486 processors. Specifically, it is incompatible with 486 processors providing the CPUID instructions. Kernel debugging works ...
Michael Karcher's user avatar
37 votes
Accepted

What was the first mainstream advanced debugger?

The "Basic Programming" cartridge for the Atari 2600 came out in 1980 and it supports all of those except the first one. It had windows for the program, stack, variables, and output which could ...
supercat's user avatar
  • 34.8k
36 votes

How did the "Programmer's Switch" work on early Macintosh Computers?

The early Apple Macintosh computers (original Mac, Mac 512K, Mac Plus) all came with a "Programmer's Switch" installed on the side. Yes and no. While the switch was there, it was on the ...
Raffzahn's user avatar
  • 214k
35 votes
Accepted

How did debugging software run without memory protection?

Without hardware support, there is no way for a debugger to protect itself from the program being debugged. A debugger needs to protect its code and working state, as well as any hooks it's set up for ...
Stephen Kitt's user avatar
29 votes
Accepted

How were bugs reported for compilers that were shipped on floppy disks?

In the early PC days, letter-writing was still common, and that was at first the main channel of communication to report issues. When CompuServe took off that became the preferred forum, at least in ...
Stephen Kitt's user avatar
29 votes

Is there a standard interface for connecting debuggers to emulators?

If you're looking for a standard to adhere to, I'd consider implementing the GDB remote protocol. (Link is to Embecosm's guide on writing a GDB Remote Serial Protocol server.) It needs GDB to support ...
ssokolow's user avatar
  • 6,351
26 votes

How did debugging software run without memory protection?

A debugger that runs inside the debugged machine is a program, so it does need memory. Sometimes the debugger is loaded as a ROM cartridge, usually with its own RAM, so it doesn't need to take any ...
mcleod_ideafix's user avatar
24 votes

How did the "Programmer's Switch" work on early Macintosh Computers?

The "programmer's switch" is more technically known as the NMI (Non Maskable Interrupt) switch. It is mapped to a priority 7 interrupt on the 68K CPU, which means it is capable of ...
Chromatix's user avatar
  • 16.7k
23 votes

Commercially available computer with single-step feature?

Next to every SBC/Kit computer, especially microprocessor systems could do so. Back then a system without this ability was something out of the norm. For the 8080/Z80, already the grandpa of all ...
Raffzahn's user avatar
  • 214k
23 votes

How were bugs reported for compilers that were shipped on floppy disks?

I worked for Borland in the UK doing support for Turbo C 1 to 1.5. Most contact was via mail or telephone in those days. Bugs were sent over to the US after we did some triage to check if they could ...
PeterI's user avatar
  • 5,277
17 votes
Accepted

What did memory dumps look like on 36-bit machines like PDP-10s?

A PDP-10 dump is primary a plain memory dump stored in a file typed 'DMP'. To get a printout a utility like DUMP or DUMPR must be used. both offer a huge variety of options to configure what to be ...
Raffzahn's user avatar
  • 214k
15 votes

What was the first mainstream advanced debugger?

The earliest innovator I know of was Manx. Manx made 'C' programming environments for early, low-cost computers like Apple ][, CP/M-80, MS-DOS, and Motorola 68000. Manx Aztec C v1.06 had symbolic (...
Brian H's user avatar
  • 60.1k
14 votes
Accepted

Is there a standard interface for connecting debuggers to emulators?

The popular VICE emulator for Commodore computers supports connecting to its in-built monitor using TCP port 6510. You can test this easily by loading the emulator, then Settings → Machine → Monitor → ...
Brian H's user avatar
  • 60.1k
12 votes
Accepted

Mysterious things happening to stack when running a debug session

Note all your references to changing values are below the stack pointer, actually a free space. You are not expected to care about this area (stack grows towards lower addresses), as this is of no ...
tofro's user avatar
  • 33.1k
12 votes

What was the first mainstream advanced debugger?

This is less of a definitive answer than a musing about some seemingly underlying assumptions within the question. For the question itself Supercat has already given a near perfect answer. While it is ...
Raffzahn's user avatar
  • 214k
12 votes

Did x86 CPU vendors like Intel, NEC, AMD, and Cyrix provide their own debugger for DOS with better CPU support and was it free?

No. While DOS competitors did improve on various DOS commands to try and differentiate their products from Microsoft's there was no equivalent motivation for CPU manufacturers whose products were used ...
Brian's user avatar
  • 389
11 votes
Accepted

How did ZX81 assembly debuggers implement breakpoints?

MONS 3 in the ZX Spectrum, for example, changes the instruction at the break address by a CALL to an entry point in MONS. As MONS is executed, it replaces back the changed instruction with the ...
mcleod_ideafix's user avatar
11 votes
Accepted

Dump process memory of Windows 3.1 control panel applet

Among the Borland Pascal 7 example programs, there is an OWL application called HeapSpy, which can inspect the list of memory blocks allocated by any running Windows module. The demo is pretty ...
user3840170's user avatar
  • 21.6k
11 votes
Accepted

History of static analysis tools for defect identification

MALPAS was developed in the 1970s at the Royal Signals Radar Establishment (in Malvern in the UK). The Wikipedia page has an overview of the different software analysers and what they do. The article ...
AdrianHHH's user avatar
  • 226
10 votes

How did debugging software run without memory protection?

I developed Logo for the Commodore 64, based on work we did at MIT for the Apple ][ and TI 99/4. Apple debugging was done with the ROM, via assembled-in breakpoints. For the C64, Andy Finkelstein at ...
Leigh Klotz's user avatar
10 votes

What was the first mainstream advanced debugger?

Microsoft Codeview shipped in 1985 and has most of the features you're asking about (its been a while so I can't be certain it has everything e.g. call stack walking), when I was doing Turbo C support ...
PeterI's user avatar
  • 5,277
10 votes

What was the first mainstream advanced debugger?

I'm including this answer in response to a couple of suggestions, although it does not meet some of the criteria laid out in the question. DDT for the DEC PDP-1 has to be recalled as probably the very ...
Walter Mitty's user avatar
  • 6,128
9 votes

What is the first computer architecture that knew code from data?

(This answers the question "Early architecture that distinguished code from data, here by having differing bank switching for code and data". I'm leaving this here because it's interesting, even if it ...
dirkt's user avatar
  • 26.1k
8 votes

Commercially available computer with single-step feature?

Hardware single-stepping the Z80 is nice and simple: when the processor asserts the M1 line (meaning it's executing the first machine cycle of an instruction), pull WAIT low until you're ready for it ...
Jules's user avatar
  • 12.8k
8 votes
Accepted

How can I debug a Mac OS Classic application?

Back in the day, MacNosy was the go to disassembler tool to attack things like that. He also wrote a debugger. I can't speak to its status today. Apparently the web site still exists: https://www....
Will Hartung's user avatar
  • 12.2k
7 votes

Commercially available computer with single-step feature?

I recall my old Z-80 based SD Systems Z80 Starter kit had single stepping in hardware. A programmable timer had its output attached to the Non-Maskable Interrupt (NMI) pin. The debugger firmware ...
Peter Camilleri's user avatar
7 votes

Commercially available computer with single-step feature?

The RCA 1802 microprocessor was implemented in fully static CMOS. You could stop and single step the clock to the processor. Perhaps using a debounced front panel switch, which could be done with a ...
hotpaw2's user avatar
  • 8,125
7 votes

What was the first mainstream advanced debugger?

THINK Pascal had an integrated debugger that meets all your criteria. You could mark stop points in the editor and then debug your compiled code using them. The debugger supported stepping, a ...
Michael Shopsin's user avatar
7 votes
Accepted

Obtaining a CPU execution trace on a Commodore 64

Are you using an emulator? VICE has the chis (CPU history) monitor command for analysing instruction activity. cpuhistory [<count>] [c:] [8:] [9:] [10:] [11:] chis [<count>] [c:] [8:] [9:...
Eight-Bit Guru's user avatar
6 votes
Accepted

Remote Debugging on the Atari ST

Db is a debugger for the Atari ST and TT series of 68000-family computers... Db can use any of the ST's character devices for its input and output, including the screen, the serial port, and the ...
snips-n-snails's user avatar

Only top scored, non community-wiki answers of a minimum length are eligible