Because the Mac OS is a sophisticated, complex operating system,
the problems a user encounters can be equally complex.
These are examples of some problems that may occur:
- 
A handle can be de-referenced.
- 
A routine can get a NIL pointer.
- 
The stack can dip into the heap for just a few cycles and not be caught
by the stack sniffer.
- 
An application can forget to check an error code.
A Macintosh usually crashes with a system error code while running
under System 6.0.x. Starting with System 7, errors are displayed in a different
fashion. Instead of displaying an error code, the system translates the
code to the appropriate words, like "Address Error".
Finding out what's wrong involves use of debugging tools, intricate
knowledge of Macintosh memory structures, and familiarity with the application
itself. Fixing it usually involves recompiling the source code. The table
below explains some of the codes.
ID=01 Bus Error
This means the computer tried to access memory that doesn't exist.
You can get this error on almost any Macintosh. If one of these computers
tried to access one or more bytes beyond the total number of bytes in RAM,
you see a bus error. You should never see this error on a Macintosh Plus
or SE, because address references that are out of bounds "roll over". This
means if one of these computers tries to access one byte beyond the total
bytes in RAM, it actually accesses the first byte in memory. If you see
this error on a Macintosh Plus or SE, it's reporting the wrong error or
having hardware problems.
ID=02 Address Error
The Motorola 68000 microprocessor can access memory in increments
of one byte (8 bits), one word (16 bits), or one long word (32 bits). The
microprocessor can access a byte of information at an odd or even memory
address. But it must access a word or long word at an even memory address.
So, when the microprocessor attempts to read or write a word or long word
at an odd address, you see this error. Since that's a 50/50 proposition
when running random code, this one shows up quite often.
ID=03 Illegal Instruction
The computer has a specific vocabulary of machine language instructions
it can understand. If a computer tries to execute an instruction that isn't
in its vocabulary, you see this error code. It's less likely than error
02, but still very common.
ID=04 Zero Divide Error
This error results if the microprocessor divides two numbers, and
the divisor is zero. Sometimes a programmer puts these in as debugging
aids, and then forgets to take them out.
ID=05 Range Check Error
Programmers can use an instruction in the Motorola 68000 to check
if a number is within a certain range. This error indicates that the number
tested isn't in the specified range.
ID=06 Overflow Error
Each number stored in a computer is given a certain amount of space.
The larger the number, the more space is needed to represent the number.
An overflow condition results if a generated number is too big for its
allotted space. A Motorola 68000 instruction tests for an overflow condition,
and displays this error if it detects an overflow.
ID=07 Privilege Violation
The Motorola 68000 runs in Supervisor or User mode. The Macintosh
should always be in Supervisor mode, but sometimes is placed in User mode.
Some of the instructions can only be executed in Supervisor mode. If the
computer attempts one of these instructions while in User mode, a Privilege
Violation error results.
ID=08 Trace Mode Error
A programmer can use a runtime debugger while in Trace mode. This
allows tracing through a program one instruction at a time. You see this
error if a debugger isn't installed and the 68000 is accidentally placed
in Trace mode.
ID=09 and ID=10 Line 1010 & 1111 Trap
There are many routines in the Macintosh ROM that can be called
by placing instructions in a program that aren't in the 68000's vocabulary.
When the 68000 encounters such an instruction, it looks it up in the instruction
table. This table gives the location of routines paired with each instruction.
If it finds an entry in the table for the instruction, it branches to the
routine. If there's no entry for the instruction, you see one of these
errors.
ID=12 Unimplemented Core Routine
A programmer might set breakpoints in parts of a program to inspect
for errors. This requires using a debugger. If a debugger isn't installed
when a breakpoint occurs, you see this error code.
ID=13 Uninstalled Interrupt
The Macintosh uses an interrupt to identify when devices like keyboards
and disk drives need service. Routines must be available in memory to tell
the computer how to service the device. If those routines aren't available,
you see this error.
ID=15 Segment Loader Error
Macintosh programs are broken up into segments, and each program
will always have at least one segment. Multiple segments allow loading
parts of the program into memory to provide more room for data in internal
RAM. The segment loader is responsible for loading a needed segment into
RAM. If the segment loader can't do this, you'll see this error.
ID=17 through ID=24 Missing Packages 0-7
The Macintosh uses packages to do specific tasks. Some of the packages
are International Utilities, Binary-Decimal Conversion, Standard File Utilities,
and Disk Initialization. These packages are located in the System file.
If you get these errors, you probably have a damaged System file. Error
codes 15, 16, 26, 27, 30, and 31 also come up when the System file is damaged.
Try replacing the System file.
ID=25 Memory Full Error
You've probably run out of RAM. But you can get this error when
an earlier error causes the Macintosh to falsely detect an out-of-memory
condition.
ID=26 Bad Program Launch
The Macintosh couldn't execute the application opened.
ID=28 Stack Ran into Heap
This is similar to the Memory Full error. It's a good idea to save
your work frequently, and keep current backups of your hard disk data.
When a system crash does occur, you'll lose less data if you've taken these
precautions.
Troubleshooting System Errors
It's a good idea to save your work frequently, and keep current
backup copies of your hard disk data. When a system crash occurs, you'll
lose less data if you've taken these precautions.
If you're getting system errors frequently, investigate these possibilities:
- 
Try to open the document with a current version copy of the application.
- 
Try opening other documents with the same copy of the application.
- 
Check to see if the document size exceeds the application size limits.
- 
Boot your system with extensions off (restart while holding the Shift
key down).
- 
Any changes (new Control Panels, extensions, etc.) you've made to the
system might give you a clue to the cause of the crashes.
- 
Make a note of the desk accessories you had open at the time of the
crash and exactly what you did before the crash.
- 
Make a note of the error ID or text, and the version numbers of the
application and system software you were using.
- 
Try to recreate the problem on another Macintosh.
- 
Cleanly install your system software and try the application again.
Negative Error Codes
Here is a list of negative codes (0 to -261) with brief explanations.
General System Errors (VBL Mgr, Queue)
0    noErr  0 for success
     "OR"
0    smNotTruncated         
No truncation necessary
-1    qErr                   
queue element not found during deletion
     "OR"
-1    smTruncErr             
Truncation indicator alone is wider
                            
than the specified width
-2    vTypErr                
invalid queue element
-3    corErr                 
core routine number out of range
-4    unimpErr               
unimplemented core routine
-5    SlpTypeErr             
invalid queue element
-8    seNoDB                 
no debugger installed to
                            
handle debugger command
Color Manager Errors
-9   iTabPurgErr            
from Color2Index/ITabMatch
-10   noColMatch             
from Color2Index/ITabMatch
-11   qAllocErr              
from MakeITable
-12   tblAllocErr            
from MakeITable
-13   overRun                
from MakeITable
-14   noRoomErr              
from MakeITable
-15   seOutOfRange           
from SetEntry
-16   seProtErr              
from SetEntry
-17   i2CRangeErr            
from SetEntry
-18   gdBadDev               
from SetEntry
-19   reRangeErr             
from SetEntry
-20   seInvRequest           
from SetEntry
-21   seNoMemErr             
from SetEntry
I/O System Errors
-17   controlErr             
Driver can't respond to Control call
-18   statusErr              
Driver can't respond to Status call
-19   readErr                
Driver can't respond to Read call
-20   writErr                
Driver can't respond to Write call
-21   badUnitErr             
Driver ref num doesn't match unit table
-22   unitEmptyErr           
Driver ref num specifies NIL handle
                            
in unit table
-23   openErr                
Requested read/write permission doesn't
                            
match driver's open permission, or Attempt
                            
to open RAM serial Driver failed
-24   closErr                
Close failed; Permission to close .MPP driver
                            
was denied
-25   dRemovErr              
tried to remove an open driver
-26   dInstErr               
DrvrInstall couldn't find driver in resources
-27   abortErr               
IO call aborted by KillIO; Publisher has
                            
written a new edition
     "OR"
-27   iIOAbortErr            
IO abort error (Printing Manager)
-28   notOpenErr             
Couldn't rd/wr/ctl/sts cause driver not opened
-29   unitTblFullErr         
Unit table has no more entries
-30   dceExtErr              
dce extension error
File System Errors
-33   dirFulErr              
Directory full
-34   dskFulErr              
Disk full
-35   nsvErr                 
No such volume; volume not found
-36   ioErr                  
I/O error
-37   bdNamErr               
Bad file name; there may be no bad names
                            
in the final system!
-38   fnOpnErr               
File not open
-39   eofErr                 
End of file; no additional data in the format
-40   posErr                 
Tried to position to before start of
                            
file (r/w)
-41   mFulErr                
Memory full (open) or file won't fit (load)
-42   tmfoErr                
Too many files open
-43   fnfErr                 
File not found; Folder not found;Edition
                            
container not found; Target not found
-44   wPrErr                 
Disk is write-protected; Volume is locked
                            
through hardware
-45   fLckdErr               
File is locked
-45   fLckedErr              
Publisher writing to an edition
-46   vLckdErr               
Volume is locked through software
-47   fBsyErr                
File is busy (delete); Section doing I/O
-48   dupFNErr               
Duplicate filename (rename); File found
                            
instead of folder
-49   opWrErr                
File already open with write permission
-50   paramErr               
Error in user parameter list
-51   rfNumErr               
Reference number invalid
-52   gfpErr                 
Get file position error
-53   volOffLinErr           
Volume is off line
-54   permErr                
Software lock on file; Not a subscriber
                            
[permissions error on file open]
-55   volOnLinErr            
drive volume already on-line at MountVol
-56   nsDrvErr               
no such drive (tried to mount a bad drive num)
-57   noMacDskErr            
not a Macintosh disk (sig bytes are wrong)
-58   extFSErr               
External file system  file system identifier
                            
is nonzero
-59   fsRnErr                
file system internal error: during rename
                            
the old entry was deleted but could not be restored.
-60   badMDBErr              
bad master directory block
-61   wrPermErr              
Write permissions error; Not a publisher
Font Manager Errors
-64   fontDecError           
error during font declaration
-65   fontNotDeclared        
font not declared
-66   fontSubErr             
font substitution occurred
Disk, Serial Ports, Clock Specific Errors
-64   lastDskErr
-64   noDriveErr             
drive not installed
-65   offLinErr              
r/w requested for an off-line drive
-66   noNybErr               
couldn't find 5 nybbles in 200 tries
-67   noAdrMkErr             
couldn't find valid addr mark
-68   dataVerErr             
read verify compare failed
-69   badCksmErr             
addr mark checksum didn't check
-70   badBtSlpErr            
bad addr mark bit slip nibbles
-71   noDtaMkErr             
couldn't find a data mark header
-72   badDCksum              
bad data mark checksum
-73   badDBtSlp              
bad data mark bit slip nibbles
-74   wrUnderrun             
write underrun occurred
-75   cantStepErr            
step handshake failed
-76   tk0BadErr              
track 0 detect doesn't change
-77   initIWMErr             
unable to initialize IWM
-78   twoSideErr             
tried to read 2nd side on a 1-sided drive
-79   spdAdjErr              
unable to correctly adjust disk speed
-80   seekErr                
track number wrong on address mark
-81   sectNFErr              
sector number never found on a track
-82   fmt1Err                
can't find sector 0 after track format
-83   fmt2Err                
can't get enough sync
-84   verErr                 
track failed to verify
-84   firstDskErr
-85   clkRdErr               
unable to read same clock value twice
-86   clkWrErr               
time written did not verify
-87   prWrErr                
parameter RAM written didn't read-verify
-88   prInitErr              
InitUtil found the parameter RAM uninitialized
-89   rcvrErr                
SCC receiver error (framing, parity, OR)
-90   breakRecd              
Break received (SCC)
AppleTalk Errors
-91   ddpSktErr              
Error opening socket
     "OR"
-91   eMultiErr              
Invalid address or table is full
-92   ddpLenErr              
Data length too big
     "OR"
-92   eLenErr                
Packet too large or first entry of the write-data
                            
structure didn't contain the full 14-byte header
-93   noBridgeErr            
No router available [for non-local send]
-94   lapProtErr             
error in attaching/detaching protocol
     "OR"
-94   LAPProtErr             
Protocol handler is already attached,
                            
node's protocol table is full, protocol
                            
not attached, or protocol handler
                            
pointer was not 0
-95   excessCollsns          
Hardware error [excessive collisions on write]
-97   portInUse              
driver Open error code (port is in use)
-98   portNotCf              
driver Open error code
                            
(parameter RAM not configured for
                            
this connection)
-99   memROZErr              
hard error in ROZ
-99   memROZError            
hard error in ROZ
-99   memROZWarn             
soft error in ROZ
Scrap Manager Errors
-100  noScrapErr             
No scrap exists error
-102  noTypeErr              
Format not available [no object
                            
of that type in scrap]
Storage Allocator Errors
-108  memFullErr             
Ran out of memory [not enough room
                            
in heap zone]
-109  nilHandleErr           
GetHandleSize fails on baseText or
                            
substitutionText; NIL master pointer
                            
[handle was NIL in HandleZone or other]
-110  memAdrErr              
Address was odd, or out of range
-111  memWZErr               
Attempted to operate on a free block;
                            
GetHandleSize fails on baseText
                            
or substitutionText
                            
[WhichZone failed (applied to free block)]
-112  memPurErr              
Trying to purge a locked or non-purgeable block
-113  memAZErr               
Address in zone check failed
-114  memPCErr               
Pointer Check failed
-115  memBCErr               
Block Check failed
-116  memSCErr               
Size Check failed
-117  memLockedErr           
Trying to move a locked block (MoveHHi)
HFS Errors
-120  dirNFErr               
Directory not found
-121  tmwdoErr               
No free WDCB available
-122  badMovErr              
Move into offspring error
-123  wrgVolTypErr           
Not an HFS volume [wrong  volume type error or
                            
(obsolete) operation  not supported for MFS]
-124  volGoneErr             
Server volume has been disconnected.
-125  updPixMemErr           
Insufficient memory to update a pixmap
-127  fsDSIntErr             
Internal file system error
Menu Manager Errors
-126  dsMBarNFnd             
System error code for  MBDF not found
-127  dsHMenuFindErr         
Couldn't find HMenu's parent in MenuKey
-128  userCanceledErr        
User canceled an operation
HFS FileID Errors
-130  fidNotFound            
no file thread exists
-131  fidNotAFile            
directory specified
-132  fidExists              
file ID already exists
Color QuickDraw and Color Manager Errors
-147  regionTooBigError      
Region too big or complex
-148  pixMapTooBigErr        
Pixel map record is deeper than
                            
1 bit per pixel
                            
[passed pixelmap is too large]
-149  notEnoughStack         
Not enough stack space for the
                            
necessary buffers
     "OR"
-149  mfStackErr             
Insufficient stack
-150  cMatchErr              
Color2Index failed to find an index
-151  cTempMemErr            
Failed to allocate memory for
                            
temporary structures
-152  cNoMemErr              
Failed to allocate memory for structure
-153  cRangeErr              
Range error on colorTable request
-154  cProtectErr            
ColorTable entry protection violation
-155  cDevErr                
Invalid type of graphics device
-156  cResErr                
Invalid resolution for MakeITable
-157  cDepthErr              
Invalid pixel depth
-158  cParmErr               
Invalid parameter
Resource Manager Errors (other than I/O)
-185  badExtResource         
Extended resource has a bad format.
-186  CantDecompress         
Resource bent ("the bends")
                            
can't decompress a compressed resource
-188  resourceInMemory       
Resource already in memory
-189  writingPastEnd         
Writing past end of file
-190  inputOutOfBounds       
Offset or count out of bounds
-192  resNotFound            
Resource not found
-193  resFNotFound           
Resource file not found
-194  addResFailed           
AddResource failed
-195  addRefFailed           
AddReference failed
-196  rmvResFailed           
RmveResource failed
-197  rmvRefFailed           
RmveReference failed
-198  resAttrErr             
Attribute inconsistent with operation
-199  mapReadErr             
Map inconsistent with operation
Sound Manager Errors
-200  noHardware             
Required sound hardware not available
                            
[no hardware support for the specified synthesizer]
-201  notEnoughHardware      
Insufficient hardware available
                            
[no more channels for the
                            
specified synthesizer]
-203  queueFull              
No room in the queue
-204  resProblem             
Problem loading the resource
-205  badChannel             
Channel is corrupt or  unusable
                            
[invalid channel queue length]
-206  badFormat              
Resource is corrupt or unusable
                            
[handle to 'snd ' resource was invalid]
-207  notEnoughBufferSpace    Insufficient
memory available
-208  badFileFormat          
File is corrupt or unusable, or not
                            
AIFF or AIFF-C
-209  channel                
Channel is busy
-210  buffersTooSmall        
Buffer is too small
-211  channelNotBusy         
Channel not currently used
-212  noMoreRealTime         
Not enough CPU time available
-213  badParam               
A parameter is incorrect
-220  siNoSoundInHardware     No sound
input hardware available
-221  siBadSoundInDevice      Invalid
sound input device
-222  siNoBufferSpecified     No buffer
specified
-223  siInvalidCompression    Invalid compression
type
-224  siHardDiskTooSlow      
Hard drive too slow to record
-225  siInvalidSampleRate     Invalid
sample rate
-226  siInvalidSampleSize     Invalid
sample size
-227  siDeviceBusyErr        
Sound input device is busy
-228  siBadDeviceName        
Invalid device name
-229  siBadRefNum            
Invalid reference number
-230  siInputDeviceErr       
Input device hardware failure
-231  siUnknownInfoType      
Unknown type of information
-232  siUnknownQuality       
Unknown quality
MIDI Manager Errors
-250  midiNoClientErr        
no client with that ID found
-251  midiNoPortErr          
no port with that ID found
-252  midiTooManyPortsErr     too many
ports already installed in the system
-253  midiTooManyConsErr      too
many connections made
-254  midiVConnectErr        
pending virtual connection created
-255  midiVConnectMade       
pending virtual connection resolved
-256  midiVConnectRmvd       
pending virtual connection removed
-257  midiNoConErr           
no connection exists between specified ports
-258  midiWriteErr           
couldn't write to all connected ports
-259  midiNameLenErr         
name supplied is longer than 31 characters
-260  midiDupIDErr           
duplicate client ID
-261  midiInvalidCmdErr      
command not supported for port type
Copyright © 1986- 1998 Apple Computer - BACK
TO HOMEPAGE