[Mono-bugs] [Bug 513931] New: Debug builds of assemblies compiled with .net don't run properly with Mono JIT

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Wed Jun 17 08:55:40 EDT 2009


http://bugzilla.novell.com/show_bug.cgi?id=513931


           Summary: Debug builds of assemblies compiled with .net don't
                    run properly with Mono JIT
    Classification: Mono
           Product: Mono: Runtime
           Version: 2.4.x
          Platform: Other
        OS/Version: Other
            Status: NEW
          Severity: Major
          Priority: P5 - None
         Component: JIT
        AssignedTo: lupus at novell.com
        ReportedBy: michael.holzmann at hermos.com
         QAContact: mono-bugs at lists.ximian.com
          Found By: ---


Created an attachment (id=298646)
 --> (http://bugzilla.novell.com/attachment.cgi?id=298646)
Sample code to reproduce this bug.

User-Agent:       Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.0.10)
Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)

After switching to Mono 2.4 I have problems with my application.

I use some pre-compiled assemblies built by MS .net compiler. These assemblies
are built with DEBUG configuration. Now I get my exceptions thrown at positions
where it definitely cannot happen and this does not happen with earlier Mono
versions.

Reproducible: Always

Steps to Reproduce:
1. Get attached Program.cs file
2. Compile with .net compiler as DEBUG
3. Run with Mono 2.4

or have a look here:

public int FailingMethod(int valParam)
{
     int val = valParam;

     if (val > 0)
     {
          if (val == 123)
               return -1;
          else
               return 1;
     }
     throw new ApplicationException("Error at FailingMethod()");
}

public int RunningMethod()
{
     int val = 25;

     if (val > 0)
     {
          if (val == 123)
               return -1;
          else
               return 1;
     }
     throw new ApplicationException("Error at RunningMethod()");
}

Call this methods:
FailingMethod(25);
RunningMethod();
Actual Results:  
The call to FailingMethod(25) will throw the exception "Error at
FailingMethod()".
The call to RunningMethod() will return 1.

Instead of a parameter valParam you can also use any other non-local member.
This will always throw the exception. There's no dependency with the method
parameter declaration but with its' usage. You can ignore the paramezer and it
will work:

public int FailingMethod(int valParam)
{
     int val = 25; //valParam;
..


Expected Results:  
The call to FailingMethod(25) should also return 1.

-- 
Configure bugmail: http://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.


More information about the mono-bugs mailing list