Browse Source

Removed IsProcessRunningChanged and IsDebuggingChanged from NDebugger

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@241 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
David Srbecký 20 years ago
parent
commit
6e692e24d1
  1. 11
      src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Pads/CallStackPad.cs
  2. 5
      src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Pads/ExceptionHistoryPad.cs
  3. 11
      src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Pads/RunningThreadsPad.cs
  4. 32
      src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Service/WindowsDebugger.cs
  5. 6
      src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Debugger/Internal/ManagedCallback.cs
  6. 46
      src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Debugger/NDebugger.cs
  7. 8
      src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Threads/Process.cs

11
src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Pads/CallStackPad.cs

@ -72,8 +72,8 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
{ {
debuggerCore = debugger.DebuggerCore; debuggerCore = debugger.DebuggerCore;
debuggerCore.IsDebuggingChanged += new EventHandler<DebuggerEventArgs>(DebuggerStateChanged); debuggerCore.DebuggingPaused += new EventHandler<DebuggingPausedEventArgs>(DebuggingPaused);
debuggerCore.IsProcessRunningChanged += new EventHandler<DebuggerEventArgs>(DebuggerStateChanged); debuggerCore.DebuggingResumed += new EventHandler<DebuggerEventArgs>(DebuggingResumed);
RefreshList(); RefreshList();
} }
@ -91,7 +91,12 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
} }
} }
public void DebuggerStateChanged(object sender, DebuggerEventArgs e) void DebuggingPaused(object sender, DebuggingPausedEventArgs e)
{
RefreshList();
}
void DebuggingResumed(object sender, DebuggerEventArgs e)
{ {
RefreshList(); RefreshList();
} }

5
src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Pads/ExceptionHistoryPad.cs

@ -74,8 +74,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
{ {
debuggerCore = debugger.DebuggerCore; debuggerCore = debugger.DebuggerCore;
debuggerCore.IsDebuggingChanged += new EventHandler<DebuggerEventArgs>(DebuggerStateChanged); debugger.ExceptionHistoryModified += new EventHandler(ExceptionHistoryModified);
debuggerCore.IsProcessRunningChanged += new EventHandler<DebuggerEventArgs>(DebuggerStateChanged);
RefreshList(); RefreshList();
} }
@ -117,7 +116,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
} }
} }
public void DebuggerStateChanged(object sender, DebuggerEventArgs e) void ExceptionHistoryModified(object sender, EventArgs e)
{ {
RefreshList(); RefreshList();
} }

11
src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Pads/RunningThreadsPad.cs

@ -81,7 +81,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
debuggerCore.ThreadStarted += new EventHandler<ThreadEventArgs>(AddThread); debuggerCore.ThreadStarted += new EventHandler<ThreadEventArgs>(AddThread);
debuggerCore.ThreadStateChanged += new EventHandler<ThreadEventArgs>(RefreshThread); debuggerCore.ThreadStateChanged += new EventHandler<ThreadEventArgs>(RefreshThread);
debuggerCore.ThreadExited += new EventHandler<ThreadEventArgs>(RemoveThread); debuggerCore.ThreadExited += new EventHandler<ThreadEventArgs>(RemoveThread);
debuggerCore.IsProcessRunningChanged += new EventHandler<DebuggerEventArgs>(DebuggerStateChanged); debuggerCore.DebuggingPaused += new EventHandler<DebuggingPausedEventArgs>(OnDebuggingPaused);
RefreshList(); RefreshList();
} }
@ -102,6 +102,10 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
} }
} }
void OnDebuggingPaused(object sender, DebuggingPausedEventArgs e)
{
RefreshList();
}
private void AddThread(object sender, ThreadEventArgs e) private void AddThread(object sender, ThreadEventArgs e)
{ {
@ -138,11 +142,6 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
item.Remove(); item.Remove();
} }
} }
public void DebuggerStateChanged(object sender, DebuggerEventArgs e)
{
RefreshList();
}
private void RefreshList() private void RefreshList()
{ {

32
src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Service/WindowsDebugger.cs

@ -40,6 +40,15 @@ namespace ICSharpCode.SharpDevelop.Services
bool serviceInitialized = false; bool serviceInitialized = false;
List<DebuggerLibrary.Exception> exceptionHistory = new List<DebuggerLibrary.Exception>(); List<DebuggerLibrary.Exception> exceptionHistory = new List<DebuggerLibrary.Exception>();
public event EventHandler ExceptionHistoryModified;
protected virtual void OnExceptionHistoryModified()
{
if (ExceptionHistoryModified != null) {
ExceptionHistoryModified(this, EventArgs.Empty);
}
}
public NDebugger DebuggerCore { public NDebugger DebuggerCore {
get { get {
@ -238,11 +247,9 @@ namespace ICSharpCode.SharpDevelop.Services
debugger.LogMessage += new EventHandler<MessageEventArgs>(LogMessage); debugger.LogMessage += new EventHandler<MessageEventArgs>(LogMessage);
debugger.ProcessStarted += new EventHandler<ProcessEventArgs>(ProcessStarted); debugger.ProcessStarted += new EventHandler<ProcessEventArgs>(ProcessStarted);
debugger.ProcessExited += new EventHandler<ProcessEventArgs>(ProcessExited);
debugger.DebuggingPaused += new EventHandler<DebuggingPausedEventArgs>(DebuggingPaused); debugger.DebuggingPaused += new EventHandler<DebuggingPausedEventArgs>(DebuggingPaused);
debugger.DebuggingResumed += new EventHandler<DebuggerEventArgs>(DebuggingResumed); debugger.DebuggingResumed += new EventHandler<DebuggerEventArgs>(DebuggingResumed);
debugger.ProcessExited += new EventHandler<ProcessEventArgs>(ProcessExited);
debugger.IsDebuggingChanged += new EventHandler<DebuggerEventArgs>(OnIsDebuggingChanged);
debugger.IsProcessRunningChanged += new EventHandler<DebuggerEventArgs>(OnIsProcessRunningChanged);
debugger.BreakpointStateChanged += delegate (object sender, BreakpointEventArgs e) { debugger.BreakpointStateChanged += delegate (object sender, BreakpointEventArgs e) {
RestoreSharpdevelopBreakpoint(e.Breakpoint); RestoreSharpdevelopBreakpoint(e.Breakpoint);
@ -313,6 +320,7 @@ namespace ICSharpCode.SharpDevelop.Services
{ {
if (debugger.Processes.Count == 1) { if (debugger.Processes.Count == 1) {
OnDebugStarted(EventArgs.Empty); OnDebugStarted(EventArgs.Empty);
isDebuggingCache = true;
} }
} }
@ -321,17 +329,20 @@ namespace ICSharpCode.SharpDevelop.Services
if (debugger.Processes.Count == 0) { if (debugger.Processes.Count == 0) {
exceptionHistory.Clear(); exceptionHistory.Clear();
OnDebugStopped(EventArgs.Empty); OnDebugStopped(EventArgs.Empty);
isDebuggingCache = false;
} }
} }
void DebuggingPaused(object sender, DebuggingPausedEventArgs e) void DebuggingPaused(object sender, DebuggingPausedEventArgs e)
{ {
isProcessRunningCache = false;
OnIsProcessRunningChanged(EventArgs.Empty); OnIsProcessRunningChanged(EventArgs.Empty);
JumpToCurrentLine(); JumpToCurrentLine();
if (e.Reason == PausedReason.Exception) { if (e.Reason == PausedReason.Exception) {
exceptionHistory.Add(debugger.CurrentThread.CurrentException); exceptionHistory.Add(debugger.CurrentThread.CurrentException);
OnExceptionHistoryModified();
if (debugger.CurrentThread.CurrentException.ExceptionType != ExceptionType.DEBUG_EXCEPTION_UNHANDLED && (debugger.CatchHandledExceptions == false)) { if (debugger.CurrentThread.CurrentException.ExceptionType != ExceptionType.DEBUG_EXCEPTION_UNHANDLED && (debugger.CatchHandledExceptions == false)) {
// Ignore the exception // Ignore the exception
e.ResumeDebuggingAfterEvent(); e.ResumeDebuggingAfterEvent();
@ -359,6 +370,7 @@ namespace ICSharpCode.SharpDevelop.Services
void DebuggingResumed(object sender, DebuggerEventArgs e) void DebuggingResumed(object sender, DebuggerEventArgs e)
{ {
isProcessRunningCache = true;
DebuggerService.RemoveCurrentLineMarker(); DebuggerService.RemoveCurrentLineMarker();
} }
@ -370,19 +382,5 @@ namespace ICSharpCode.SharpDevelop.Services
} }
DebuggerService.JumpToCurrentLine(nextStatement.SourceFullFilename, nextStatement.StartLine, nextStatement.StartColumn, nextStatement.EndLine, nextStatement.EndColumn); DebuggerService.JumpToCurrentLine(nextStatement.SourceFullFilename, nextStatement.StartLine, nextStatement.StartColumn, nextStatement.EndLine, nextStatement.EndColumn);
} }
void OnIsDebuggingChanged(object sender, DebuggerEventArgs e)
{
isDebuggingCache = debugger.IsDebugging;
isProcessRunningCache = debugger.IsProcessRunning;
}
public void OnIsProcessRunningChanged(object sender, DebuggerEventArgs e)
{
isDebuggingCache = debugger.IsDebugging;
isProcessRunningCache = debugger.IsProcessRunning;
((DefaultWorkbench)WorkbenchSingleton.Workbench).Update();
}
} }
} }

6
src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Debugger/Internal/ManagedCallback.cs

@ -88,11 +88,11 @@ namespace DebuggerLibrary
void ExitCallback_Paused(PausedReason reason) void ExitCallback_Paused(PausedReason reason)
{ {
if (debugger.CurrentThread != null) { if (debugger.CurrentThread == null) {
debugger.CurrentThread.DeactivateAllSteppers(); throw new DebuggerException("You are not allowed to pause since CurrentThread is not set");
} }
debugger.CurrentThread.DeactivateAllSteppers();
if (reason != PausedReason.EvalComplete) { if (reason != PausedReason.EvalComplete) {
debugger.OnIsProcessRunningChanged();
debugger.OnDebuggingPaused(reason); debugger.OnDebuggingPaused(reason);
} }
handlingCallback = false; handlingCallback = false;

46
src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Debugger/NDebugger.cs

@ -94,9 +94,6 @@ namespace DebuggerLibrary
ResetBreakpoints(); ResetBreakpoints();
ClearThreads(); ClearThreads();
OnIsProcessRunningChanged();
OnIsDebuggingChanged();
currentProcess = null; currentProcess = null;
@ -126,24 +123,6 @@ namespace DebuggerLibrary
} }
public event EventHandler<DebuggingIsResumingEventArgs> DebuggingIsResuming;
protected internal virtual void OnDebuggingIsResuming(ref bool abort)
{
if (DebuggingIsResuming != null) {
TraceMessage ("Debugger event: OnDebuggingIsResuming(" + abort.ToString() + ")");
foreach(Delegate d in DebuggingIsResuming.GetInvocationList()) {
DebuggingIsResumingEventArgs eventHandler = new DebuggingIsResumingEventArgs(this);
d.DynamicInvoke(new object[] {this, eventHandler});
if (eventHandler.Abort == true) {
abort = true;
break;
}
}
}
}
public event EventHandler<DebuggerEventArgs> DebuggingResumed; public event EventHandler<DebuggerEventArgs> DebuggingResumed;
protected internal virtual void OnDebuggingResumed() protected internal virtual void OnDebuggingResumed()
@ -154,28 +133,6 @@ namespace DebuggerLibrary
} }
} }
public event EventHandler<DebuggerEventArgs> IsProcessRunningChanged;
protected internal virtual void OnIsProcessRunningChanged()
{
TraceMessage ("Debugger event: OnIsProcessRunningChanged()");
if (IsProcessRunningChanged != null) {
IsProcessRunningChanged(this, new DebuggerEventArgs(this));
}
}
public event EventHandler<DebuggerEventArgs> IsDebuggingChanged;
protected internal virtual void OnIsDebuggingChanged()
{
TraceMessage ("Debugger event: OnIsDebuggingChanged()");
if (IsDebuggingChanged != null) {
IsDebuggingChanged(this, new DebuggerEventArgs(this));
}
}
/// <summary> /// <summary>
/// Fired when System.Diagnostics.Trace.WriteLine() is called in debuged process /// Fired when System.Diagnostics.Trace.WriteLine() is called in debuged process
/// </summary> /// </summary>
@ -224,12 +181,9 @@ namespace DebuggerLibrary
{ {
Process process = Process.CreateProcess(this, filename, workingDirectory, arguments); Process process = Process.CreateProcess(this, filename, workingDirectory, arguments);
AddProcess(process); AddProcess(process);
OnIsDebuggingChanged();
OnIsProcessRunningChanged();
} }
#endregion #endregion
public void ToggleBreakpointAt(string fileName, int line, int column) public void ToggleBreakpointAt(string fileName, int line, int column)

8
src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Threads/Process.cs

@ -128,7 +128,6 @@ namespace DebuggerLibrary
isProcessRunning = false; isProcessRunning = false;
debugger.OnDebuggingPaused(PausedReason.Break); debugger.OnDebuggingPaused(PausedReason.Break);
debugger.OnIsProcessRunningChanged();
} }
public void Continue() public void Continue()
@ -137,14 +136,9 @@ namespace DebuggerLibrary
throw new DebuggerException("Invalid operation"); throw new DebuggerException("Invalid operation");
} }
bool abort = false;
debugger.OnDebuggingIsResuming(ref abort);
if (abort == true) return;
isProcessRunning = true; isProcessRunning = true;
if (debugger.ManagedCallback.HandlingCallback == false) { if (debugger.ManagedCallback.HandlingCallback == false) {
debugger.OnDebuggingResumed(); debugger.OnDebuggingResumed();
debugger.OnIsProcessRunningChanged();
} }
corProcess.Continue(0); corProcess.Continue(0);
@ -167,7 +161,7 @@ namespace DebuggerLibrary
get { get {
return isProcessRunning; return isProcessRunning;
} }
set { internal set {
isProcessRunning = value; isProcessRunning = value;
} }
} }

Loading…
Cancel
Save