Crashes

Search
 

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.