internal GUIManager(Debugger debugger)
{
this.Debugger = debugger;
this.ThreadingModel = ThreadingModel.Global;
debugger.ProcessExitedEvent += delegate (Debugger dummy, Process process) {
try {
if (ProcessExitedEvent == null)
return;
ST.ThreadPool.QueueUserWorkItem (delegate {
ProcessExitedEvent (debugger, process);
});
} catch (Exception ex) {
Report.Error ("Caught exception while sending process {0} exit:\n{1}",
process, ex);
}
};
debugger.TargetEvent += delegate (Thread thread, TargetEventArgs args) {
try {
if (TargetEvent == null)
return;
ST.ThreadPool.QueueUserWorkItem (delegate {
TargetEvent (thread, args);
});
} catch (Exception ex) {
Report.Error ("{0} caught exception while sending {1}:\n{2}",
thread, args, ex);
}
};
}