[Mono-list] patch for mono/jit/exception.c

Dietmar Maurer dietmar@maurer-it.com
13 May 2002 09:52:32 +0200


On Sat, 2002-05-04 at 23:08, Linus Upson wrote:

Running NUnitConsole_mono.exe in mono on Windows exposed the following
bug:

If an exception were throw by the instruction immediately preceding a
try block, the exception would be considered to be thrown inside the try
block.

A patch is attached which appears to solve the problem. The patch won't
work if arch_handle_exception() can be called with ctx->SC_EIP pointing
to the instruction which threw the exception. I think an exception can
only be thrown by a CALL (as far as managed code is concerned) so EIP
will always point to the instruction after the CALL. If this isn't the
case, a different fix will be needed.

Ok, I fixed this by modifying EIP to point always to the call
instruction (not to the instruction after the call). Please test if that
solves you problem?

- Dietmar