[Mono-bugs] [Bug 483010] New: Unable to debug source code via "ilasm /debug=impl" and ".line"

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Fri Mar 6 15:37:35 EST 2009


https://bugzilla.novell.com/show_bug.cgi?id=483010


           Summary: Unable to debug source code via "ilasm /debug=impl"
                    and ".line"
    Classification: Mono
           Product: Mono: Debugger
           Version: 2.4.x
          Platform: i686
        OS/Version: openSUSE 11.1
            Status: NEW
          Severity: Normal
          Priority: P5 - None
         Component: backend
        AssignedTo: martin at novell.com
        ReportedBy: stephen at gennard.net
         QAContact: mono-bugs at lists.ximian.com
          Found By: ---


Created an attachment (id=277781)
 --> (https://bugzilla.novell.com/attachment.cgi?id=277781)
An example of using "ilasm /debug=imp" and screen shots of working on another
environment..

User-Agent:       Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; WOW64;
SLCC1; .NET CLR 2.0.50727; .NET CLR 3.5.21022; InfoPath.2; .NET CLR 3.5.30729;
NET CLR 3.0.30618; MS-RTC LM 8)

Background:

Our language generates ilasm source code and uses ilasm to create assemblies.

To enable debugging we use "ilasm /debug=impl" ie: it uses implicit sequence
points embedded in the .il.  This combined with use of the
DebuggerHiddenAttribute and ".line 0xfeefee" we are able to hide our background
runtime code.   This enables us to basic line + break-point debugging.

For a much richer debugging experience we have extended Microsoft Visual
Stdio environment with out debugger expression evalulator that understand
our language.   For purpose of this bug report we are only interested in
basic line + break-point style debugging.

I have put together a canned example that demonstrate how we use this.  It
contained in hello.il (with the target source code being hello.cbl).

Reproducible: Always

Steps to Reproduce:
1. ilasm /debug=impl hello.il
2. mdb hello.exe
3. run

Starting program: hello.exe
Thread @1 stopped at #0: 0xb787042e in hello.Main()+0x6 at
/home/spg/src/debugger/hello.il:50.
  50      call       void [mscorlib]System.Console::WriteLine(string)

Actual Results:  
spg at linux-ga3j:~/src/debugger> ilasm /debug=impl hello.il
Assembling 'hello.il' , no listing file, to exe --> 'hello.exe'

Operation completed successfully
spg at linux-ga3j:~/src/debugger> mdb hello.exe
Mono Debugger
(mdb) run
Starting program: hello.exe
Thread @1 stopped at #0: 0xb787042e in hello.Main()+0x6 at
/home/spg/src/debugger/hello.il:50.
  50      call       void [mscorlib]System.Console::WriteLine(string)
(mdb) break 1
ERROR: Cannot find method corresponding to line 1 in `hello.il'.
(mdb)
(mdb) quit
The program is running.  Exit anyway? (y or n) y

Expected Results:  

spg at linux-ga3j:~/src/debugger> mdb hello.exe
Mono Debugger
(mdb) run
Starting program: hello.exe
Thread @1 stopped at #0: 0xb787042e in hello.Main()+0x6 at
/home/spg/src/debugger/hello.cbl:1.
  1    display "Hello world - line 1"      
(mdb) quit


If you require any further information, my work email is
stephen.gennard at microfocus.com too.

Note: our intent is to add a new language to mono's growing list of languages
 and thus debugging support for us is important.

-- 
Configure bugmail: https://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