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 ...
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 ...
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 ...
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 ...
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 ...
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 ...
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 ...
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 ...
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 ...
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 ...
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 ...
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 (...
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 → ...
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 ...
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 ...
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 ...
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 ...
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 ...
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 ...
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 ...
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 ...
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 ...
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 ...
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 ...
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....
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 ...
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 ...
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 ...
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:...
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 ...
Only top scored, non community-wiki answers of a minimum length are eligible
Related Tags
debugging × 26programming × 5
hardware × 3
ms-dos × 3
x86 × 3
history × 2
commodore-64 × 2
amiga × 2
z80 × 2
apple-macintosh × 2
8086 × 2
reverse-engineering × 2
assembly × 1
emulation × 1
6502 × 1
rom × 1
intel × 1
windows-98 × 1
atari × 1
software-development × 1
boot × 1
file-format × 1
compilers × 1
windows-3.x × 1
mac-os-classic × 1