Page Numbers: Yes First Page: 26 X: 527 Y: 10.5"
Margins: Binding: 13
Odd Heading:
Signal and Error Messages
Even Heading: Not-on-first-page
Signal and Error Messages
Section 7: Signal and Error Messages
The following messages are generated by the debugger. Wherever possible, there is also an explanation of what might have caused the problem and what you can do about it.
Breakpoints
All of these errors will cause Wisk to flash the screen. Trying to set an entry or exit break near the same place may provide more information.
Can’t dereference or access array to test condition!
You have specified a condition that requires dereferencing or an array indexing to test; the runtime is unable to evaluate conditions that complex.
too many conditional breaks!
You have tried to set more conditional breaks than the system allows.
invalid relation!
You have specified an illegal relation expression for a condition.
user break block not found!
You have tried to free a conditional breakpoint when the conditional breakpoint information cannot be found (probably a core clobber).
variable is larger than a word!
You have tried to set a condition that uses a multiword value.
rhs on stack not allowed!
You have tried to set a condition where the right hand side of the relational expression is on the stack. Only the left hand side can be on the eval stack. This can only happen on entry and exit breakpoints
can’t break on port!
An attempt was made to set a breakpoint on an opcode on which it is not allowed; specifically in the middle of a port transfer.
no exchangable code found!
The debugger has tried several consecutive instuctions, and has not found an opcode on which a breakpoint is allowed. The code has probably been clobbered.
breakpoint not found!
You have swapped to the debugger when the breakpoint information (frame, pc, etc.) cannot be found (check the code for your program).
no breaks have been set!
You did a LIst Breaks when there weren’t any.
symboltable missing!
The debugger is trying to manipulate a breakpoint for which there is no symboltable and it is not prepared to handle the situation.
not allowed in INLINE!
You have tried to set a breakpoint in an INLINE procedure.
already set!
You have already set a breakpoint on the location.
does not return!
An attempt was made to set an exit breakpoint on a procedure in which the return statement is not in the correct location (check the code for your program). This occurs most often in procedures that end with ERROR or a loop which does not terminate; a code clobber is also possible.
conditions not checked in Worry mode!
You have attached a condition while in worry mode. This is a warning only.
??
Unknown error.
Command execution
... aborted
Execution of the current command has been aborted (↑DEL has been typed).
!Resetting symbol table
This warning is displayed before the debugger’s scratch symbol table overflows; the command is retried automatically. The Debugger’s performance decreases somewhat until the symbol table is refilled.
!Number
An invalid number has been typed.
xxx not implemented!
Feature xxx is not implemented.
!Invalid Address [nnnnB]
!Write protected [nnnnB]
!Non-existant memory page [nnnnB]
An illegal memory location has been referenced.
! unknown file problem! Your directory probably needs scavenging.
Something is wrong with your directory.
!Command not allowed
Execution of the current command is not allowed since the state of the user core image appears to be invalid.
Core image not healthy, can’t swap!
You may only Quit or terminate the session (Kill session) after the debugger has been bootloaded.
!MDS exhausted [n]
The debugger has run out of memory.
Please terminate editing xxx.
The file xxx is still being edited and you tried to leave the debugger.
Disk full! Typescript reset to beginning.
The debugger resets the typescript to the beginning of Debug.log if you run out of disk space. This is a warning message.
Displaying the stack
No previous frame!
The end of the call stack has been reached.
No symbol table for nnnnnnB
The symbol table file corresponding to the frame nnnnnnB is missing; any attempt to symbolically reference variables in this module will fail. (In general, this message is a warning.)
Can’t use <module> of <time> instead of version created <time>
This message is printed if the creation date in the source file on your disk is different than the corresponding date recorded by the compiler in the BCD.
Cross jumped!
The BCD was compiled with the cross jumping switch turned on. The source line displayed may not be what you expect.
Pc not in any procedure!
The debugger was unable to find a procedure or mainline code that matched the current pc. This is probably due to a clobber.
Entering the debugger
*** Debugger Bootloaded! ***
Appears at the top of the DEBUG.LOG window after you have booted from the MESADEBUGGER file (by typing Bootfrom MesaDebugger to the Alto Executive). This gets you into the debugger and allows you to look at what was going on. Extra banks available to the client must be unchanged. The debugger will run in only one bank after bootloading. You may not proceed after bootloading the debugger.
*** Fatal System Error (Punt) ***
Appears when the system can no longer continue, often a result of running out of memory or frame space. (Display Stack for several levels and look at the variables to try to figure out what was going on. A Coremap may also help to explain the memory space problem.)
*** Interrupt ***
Appears at the top of the DEBUG.LOG window after you have entered the debugger via interrupt mode (↑SWAT has been held down).
ResumeError!
You have attempted to continue execution from an ERROR. This may occur both in the situation described below or as the result of a programming error. (The debugger does not support resuming SIGNALs which return values.)
*** uncaught SIGNAL SoS (in MayDay)
The user program has raised a SIGNAL (ERROR) which no one dynamically nested above the SIGNAL invocation was prepared to catch. The debugger prints the name of the SIGNAL, lists its parameters (if any), creates a new instance of the debugger, and gives control to the command processor. At this point you may, for example, display the stack to see who raised the uncaught SIGNAL.
If the semantics of the situation permit, you may proceed execution at the point of the SIGNAL’s invocation by issuing a Proceed command. Alternatively, you retire to the dynamically enclosing instance of the debugger by issuing a Quit command. If the SIGNAL actually was an ERROR and you elect to Proceed, you get a ResumeError.
Note: if the debugger does not have access to the required symbol tables, the information will be printed in octal. For standard Mesa software, listings which decode these numbers are available (see the Mesa Users Handbook).
Eval stack not empty!
The warning is printed if the debugger is entered via either an interrupt or breakpoint with variables still on the evaluation stack; this indicates that the current value of some variables may not be in main memory, where the interpreter normally looks. Exceptions to this are entry and exit breaks; the debugger has enough information to decode the argument records that are on the stack in this case (if the appropriate symbol tables are available).
Interpreter
! x is an invalid character
The character x typed to the interpreter is illegal.
! Syntax error at [n]
There was a syntax error at location n in the expression given the interpreter.
! Parse error at [n]
There was a error at location n parsing the expression given the interpreter.
The following errors may have the offending identifier preceding the message:
can’t call an INLINE!
You tried to call an INLINE PROCEDURE.
can’t lengthen!
The interpreter needed to lengthen something while evaluating an expression that it couldn’t in order to make two types conformable.
can’t make a constructor!
Use field by field assignments. You gave the interpreter an expression using [] that looks like a constructor.
double word array index!
The index for an array must be a single word.
has an invalid address!
The expression to the right of the @ is not word aligned.
is an invalid number!
This is probably a type mismatch.
is an invalid pointer!
This is probably a type mismatch.
invalid subrange!
This is probably a type mismatch.
pointer fault!
You tried to dereference NIL.
is not a valid control link!
The procedure or signal in your expression has an illegal value.
is not a relative pointer!
In the expression base[rel], rel wasn’t a RELATIVE POINTER.
is not a type!
The identifier used in a type expression was not a type.
is not a unique field selector!
The field selector occurs more than once in the computed or overlaid variant.
is not a valid field selector!
The identifier given for a field selector is not in the record. This could be because you lack the symbols for the record declaration on your disk.
overflow!
Overflow occured while doing arithmetic. Perhaps you need a LONG in the expression.
relations not implemented!
a = b is not allowed.
size mismatch!
You tried to assign or loophole two things of different sizes. Loopholing pointers is a useful trick for records of different sizes.
too many arguments for stack!
You can only call procedures that take 5 or fewer words of arguments.
has incorrect type!
Type mismatch.
unknown variant!
The interpreter found a garbage tag field.
Won’t dump that much memory!
You tried to print more than 64K with the MEMORY construct.
not permitted in worry mode!
You can’t call procedures in worry mode.
is the wrong base!
In the expression base[rel], the type of base is not what rel expects.
has the wrong number of arguments!
The arguments to a procedure call are wrong.
used incorrectly with []!
You probably tried to use [] as a type constuctor.
xxx$ is ambiguous; use frame $!
There is either more than one instance of xxx instantiated, or the code for xxx is packed with another module.
Symbol Lookup
xyz not found!
The variable or file named xyz cannot be found.
!File: xyz
The file named xyz cannot be found.
nnnnnB not started!
The global frame nnnnnB has not yet been started. Any variables looked up will be uninitialized.
xyz not bound!
The imported variable xyz is not exported by anyone.
!File: --compressed symbols--
The symbol file is compressed.
--- has incorrect version!
The symbol file has an incorrect version stamp.
!Tree for xx not in symbol table
A multiword constant in your code wasn’t copied into the symbol table. Look in the source file to find the value.
Use Interface.importedVariable, not Interface$importedVariable
The debugger cannot find imported variables from an interface file (the "$" notation). The "." notation will tell it to use the interface record (if found) available in the current context.
Validity checking
--- is not a valid frame!
--- is a clobbered frame!
--- not a frame!
--- has a NULL returnlink!
--- has a clobbered accesslink!
--- is an invalid ProcessHandle!
--- is an invalid image file!
The structure in question appears to be clobbered (invalid in some way).