[Mono-devel-list] Mono.Debugger: Async command handling

Hans Kratz kratz at omnicore.com
Tue Jan 25 05:17:35 EST 2005


I have started implementing support for debugging with Mono in X-develop.

For starters I tried implementing simple support for suspending and 
resuming all (non-daemon) threads in the VM. Suspending them works fine 
except for the obvious races caused by the lack of a VM-wide suspend.

Resuming all threads does not work as well. The  problem I ran into is 
that there can only be one asynchronous command pending at any given 
time and continuing a thread in background is only available as an 
asynchronous command. Thus I can not reliably continue all threads with 
Process.Continue(true, false) because I have no idea when the 
asynchronous invoation of Process.Continue() finishes.

This problem could be solved by changing ThreadManager to have a Command 
queue instead of the current_command field. This lifts the limitation of 
having only one asynchronous command pending at any given time.

Comments? Should I go ahead, change this and send a patch?

Best regards,

Hans Kratz
X-develop team

More information about the Mono-devel-list mailing list