Submit Hint Search The Forums LinksStatsPollsHeadlinesRSS
14,000 hints and counting!

Click here to return to the 'Developer button' hint
The following comments are owned by whoever posted them. This site is not responsible for what they say.
Developer button
Authored by: mingking on Dec 23, '02 01:33:23AM

The 'developer button' or 'programmer switch' on some Macs is actually an NMI (Non-Maskable Interrupt) switch that drops you into a kernel level debugger in pre-OS X. There is a very rudimentary debugger built into the ROMs of the machines that essentially only allows you to peek, poke and jump in memory. No sane developer ever uses that. If you need to do any real low-level debugging in the old OS you would normally install MacsBug which is a much more powerful low-level debugger that overrides the ROM one and gives you tremendous power - stack traces, formatted memory dumps, symbol dumps, macros and all sorts of stuff. Oh, the memories...

In later classic systems, Command-Power (there used to be a Power button on Mac keyboards, but no longer) would also bring you into the debugger. Command-Option-Delete would do a reset. Nice to be able to do those directly from the keyboard. But those didn't always work if the machine was so hosed that keyboard scanning wasn't happening. Hence the hardware switches.

Normal users might find themselves using the *other* small button that was on all Macs - the Reset button. That just hard rebooted your machine. Since the old OS was not memory-protected, it was actually not that uncommon that the machine would hang, hence people wound up using that switch far more often than they should have needed to. I'm not exactly sure why Apple brought that button out to the front panel on the older machines. It's pretty much the same as using the power switch or unplugging the thing. But it was a bit easier to access, being on the front or side panel on most machine whereas the power switch was usually on the back of the machine somewhere. Developers that wrote a log of buggy code probably used it a lot. (but not ME of course... ;-)

Doing a reset or NMI is not ususally (if ever) what you want to do in a Unix system like OS X, hence if your machine even has a programmer switch it does nothing in OS X (apparently the newer ones don't have them, at least not on the front panel). If you've got one, the reset button still does its thing, but again, it's not very common or useful in OS X.

In OS X you rarely have to hard reboot the machine. Almost always you can just kill the offending application or process. You can kill applications using the Force Quit item in the Apple menu, or hitting Command-Option-Escape as a shortcut, which will bring up a GUI way to kill applications that may be hung.

You can also use the command line to kill processes (some background processes don't show up in the Force Quit dialog). If the GUI is stuck you can ususally log in from another machine (using ssh) and kill the process. Sometimes this can save your butt, as killing processes is much less likely to make you lose data or corrupt your hard drive than hard restarting it. Killing processes from the command line is generally only for the fully initiated Unix geek. You have to know what PIDs and such are. (if interested, see the man page for 'kill')

If by chance you do get a hard hang in OS X (very, very rare), in the newer machines you can just hold down the power button for about five seconds and it will reboot.

[ Reply to This | # ]