| MacsBug | |
|---|---|
The MacsBug debugger interface | |
| Developers | Motorola,Apple Computer |
| Initial release | 1979; 47 years ago (1979) |
| Stable release | 6.6.3 / September 14, 2000; 25 years ago (2000-09-14) |
| Operating system | Classic Mac OS |
| Platform | 680x0 andPowerPC |
| Type | Debugger |
| Website | web |
MacsBug (originallyMACSbug) is a low-level (assembly language/machine-level)debugger for theclassic Mac OS operating system. MacsBug is an acronym forMotorolaAdvancedComputerSystems Debugger, as opposed toMacintosh debugger (The Motorola 68000 Microprocessor is imprinted with the MACSS acronym[1]). The original version was developed by Motorola as a general debugger for its68000 systems.[2][3]— it was ported to the Mac as a programmer's tool early in the project's development.
MacsBug is invoked by hitting the Macintosh's "Programmer's Key" or, as it became later known, the "Interrupt Key" or by pressing "Command-Power". MacsBug offers many commands fordisassembling, searching, and viewing data as well as control overprocessor registers. MacsBug is not installed by default with Mac OS, although every Macintosh since the Macintosh Plus includes a debugger in ROM known as MicroBug.[4]
Users who stumble into MacsBug by accident need only to enterG and press return to escape from MacsBug; however, MacsBug is not installed by default, requiring a system extension, so a typical user environment does not include it. However, it was occasionally installed by end users to provide very basic error recovery. As the classic Mac OS lackedmemory protection, "hard crashes" where an application crash simply froze the entire system weren't uncommon. With MacsBug installed, instead of an unresponsive system, the user would be dumped into MacsBug, where they could typeES to Exit to Shell (force quit the crashed application and return to theFinder) orRB for ReBoot, which restarted the system.[5] Such recovery efforts were often not successful, with the only alternative ahard reset.
In Mac OS versions 7.5 and later, the presence of MacsBug is indicated at startup; it is present if the user sees the textDebugger installed (although, occasionally, this may indicate the presence of another piece of software loaded into the area of memory reserved for the debugger, instead).
MacsBug was originally for the Motorola 68000 series of processors only. When Apple introduced thePower Macintosh in 1994, it was followed by an updated MacsBug that supported thePowerPC instruction set and architecture.
The last version of MacsBug was 6.6.3, released September 14, 2000. This final version works with all of the machines released in the July–September timeframe of 2000, including thePower Mac G4 (uni- and multi-processor),Power Mac G4 Cube, theiMac family (Ruby, Indigo, Sage, Graphite, and Snow), and theiBook family (Indigo, Key Lime, and Graphite).
6.6.3 includes better support for debugging MP tasks, and fixes some serious bugs in the memory setting commands when used inPCI I/O space. It can also be used inClassic when running under Mac OS X, where it is invoked by pressing "⌘-⏏" (or "⌘-F12" on systems without an Eject key).
Mac OS X allows programmers to use familiar MacsBug commands ingdb. This gdb plugin is included with the OS X Developer Tools, located in the directory /usr/libexec/gdb/plugins/MacsBug/.
Third party alternatives to MacsBug includedICOM Simulations' TMON which came with theDarin Adler Extended User Area & Trap Discipline (allowing all documented Mac API parameters to be verified) and the fully symbolicJasik debugger, which was much more powerful, but harder to use due to the intricate and non-standard user interface.
Much of the information contained in this manual is reprinted with the permission of Motorola Inc. from the Motorola MC68000 Design Module User's Guide (Motorola part number MEX68KDM(D4) AUGUST, 1980)
{{cite web}}: CS1 maint: bot: original URL status unknown (link)