[Mono-dev] SIGILL in finally clause without catch
Christian Stümpel
mail at christian-stuempel.de
Fri Apr 25 07:51:10 EDT 2008
Hi Zoltan,
> the (managed-to-native) wrapper. So the problem is usually in the
> native code.
>
But then why does introducing the "catch" and rethrowing resolve the
matter?
platform is Mac OS X i386.
Christian
Am 25.04.2008 um 12:01 schrieb Zoltan Varga:
> Hi,
>
> Mono throws that exception when it receives a SIGILL signal while
> executing some
> code. If it receives it while executing native code, it appears that
> it is thrown by
> the (managed-to-native) wrapper. So the problem is usually in the
> native code.
>
> What platform/os is this ?
>
> Zoltan
>
> 2008/4/23 Christian Stümpel <mail at christian-stuempel.de>:
>> In code I have to port from MS .NET to mono I observed several SIGILL
>> crashes at points in code, where calls to external code are made
>> within a
>> try block followed by a finally but *without* a catch statement.
>>
>>
>> try {
>> unrar.dosomething();
>> throw new Exception("test");
>> }
>>
>> // no catch here
>>
>> finally
>> {
>> unrar.close(); // calls unmanaged code
>>
>> }
>>
>> The unmanaged code called in unrar.dosomething() is C++ code
>> compiled with
>> exceptions enabled but it does not throw the exception, but the
>> managed code
>> that follows. The call to unrar.close() (which does not throw any
>> exception)
>> in the finally clause crashes with:
>>
>> System.ExecutionEngineException: SIGILL at (wrapper managed-to-
>> native)
>> NntpApp.nntp.rar.Unrar:RARCloseArchive (intptr) at
>> NntpApp.nntp.rar.Unrar.Close () [0x00000] at
>> usenextapp.FilegroupPreview.ExtractFileFromRar (System.String path)
>> [0x00000]
>>
>> The SIGILL does not appear if I catch the exception and rethrow it
>> in the
>> finally clause
>>
>> Exception e=null;
>>
>> try {
>> unmanaged1();
>> throw new Exception("test");
>> }
>>
>> catch(Exception ex)
>> {
>> e= ex;
>> }
>>
>> finally
>> {
>> cleanup();
>> if (e!=null)
>> throw e;
>> }
>>
>> Any thoughts on that?
>>
>> Christian Stümpel
>>
>>
>>
>> _______________________________________________
>> Mono-devel-list mailing list
>> Mono-devel-list at lists.ximian.com
>> http://lists.ximian.com/mailman/listinfo/mono-devel-list
>>
>>
More information about the Mono-devel-list
mailing list