|
We sometimes get an email with the statement "Smalltalk MT
crashed"! First let me fix a misconception. A "crash" comes in
several forms and helping you understand the differences provides
you with more knowledge and me with better reporting
J The
most common form of "crash" is an Unhandled Exception. This means
that some code executed that was not protected by an Exception
Handler. Let's do an
example. In a workspace try:
MemoryManager atAddress: 1 put: 0.
You will get this

This code attempts to write a zero into memory address 1 which is
not allowed. So Windows reports the exception to us and our
default exception handler reports the error in a Dialog Box. Note
the error. An attempt to "write" memory at: "0x00000001" was made.
That is exactly what we were trying to do. If this had been a
runtime program, the program would have terminated after this
dialog. So if you get one of these, look at the type of
exception (in this case EXCEPTION_ACCESS_VIOLATION) and what the
program was trying to do (read memory or write memory) and the
memory location that was being accessed. It may help you determine
what was going on. |