[Mono-bugs] [Bug 674490] New: Mono.Debugger.Soft.VirtualMachine.EnableEvents dislikes EventType.Step

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Wed Feb 23 15:59:06 EST 2011


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

https://bugzilla.novell.com/show_bug.cgi?id=674490#c0


           Summary: Mono.Debugger.Soft.VirtualMachine.EnableEvents
                    dislikes EventType.Step
    Classification: Mono
           Product: Mono: Debugger
           Version: 2.10.x
          Platform: x86-64
        OS/Version: Windows 7
            Status: NEW
          Severity: Minor
          Priority: P5 - None
         Component: backend
        AssignedTo: martin at novell.com
        ReportedBy: mikael at lyngvig.org
         QAContact: mono-bugs at lists.ximian.com
          Found By: ---
           Blocker: ---


Created an attachment (id=415858)
 --> (http://bugzilla.novell.com/attachment.cgi?id=415858)
Displays the assertion failed error (no new info).

User-Agent:       Mozilla/5.0 (Windows; U; Windows NT 6.1; da; rv:1.9.2.13)
Gecko/20101203 Firefox/3.6.13 ( .NET CLR 3.5.30729; .NET4.0E)

If you call EnableEvents with the EventType.Step value, the debugging agent
blows up with an assertion failed in line 5535 of debugger-agent.c.  It appears
that debugger-agent.c expects some parameters to be passed over the line, which
EnableEvents does not pass over.

It may very well be me who is doing something wrong as I am meddling around
trying to grok the Mono Soft Debugger without any API documentation and only
the Mono and MonoDevelop sources to help me.

I just thought I'd let you know about this problem.  It is very low priority as
far as I can see (MonoDevelop does not use the EventType.Step value when it
calls EnableEvents).  It may even be intended behavior, but it is hard to say
without documentation.

My take was that I wanted to enable all events (except MethodEntry and
MethodExit) so that I could concentrate on handling the events rather than on
enabling and disabling all the time.  So I created a huge call to EnableEvents:

// enable as many events as at all possible (cannot enable breakpoint events
for some obscure reason)
_vm.EnableEvents(
    EventType.VMStart,
    EventType.VMDeath,
    EventType.ThreadStart,
    EventType.ThreadDeath,
    EventType.AppDomainCreate,
    EventType.AppDomainUnload,
#if false
    // enabling these events will likely slow down the run-time performance of
the running app too much
    EventType.MethodEntry,
    EventType.MethodExit
#endif
    EventType.AssemblyLoad,
    EventType.AssemblyUnload,
#if false
    // the VirtualMachine.EnableEvents() method throws an exception if this one
is specified (reason unknown)
    EventType.Breakpoint
#endif
    EventType.Step,
    EventType.Exception,
    EventType.VMDisconnect
);


Reproducible: Always

Steps to Reproduce:
1. Create a VirtualMachine() instance (vm).
2. Call vm.EnableEvents(EventType.Step).

Actual Results:  
Mono was terminated "in an unusual way".

Expected Results:  
I would expect the Virtual Machine to enable all events without crashing and
burning.  After all, it does seem somewhat sensible to simply enable all events
(except those that slow down execution such as MethodEntry and MethodExit) when
the virtual machine is started.  I'm not sure if the Step event belongs in the
"slows down" category, though.

-- 
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