Browse Source

Worked on exceptions; Added ExceptionHistoryPad

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@66 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
David Srbecký 21 years ago
parent
commit
1f1a1936fd
  1. 9
      src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Debugger.AddIn.addin
  2. 1
      src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Debugger.AddIn.csproj
  3. 4
      src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Pads/BreakPointsPad.cs
  4. 131
      src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Pads/ExceptionHistoryPad.cs
  5. 28
      src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Service/WindowsDebugger.cs
  6. 5
      src/AddIns/Misc/Debugger/Debugger.Core/Project/Debugger.Core.csproj
  7. 8
      src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Breakpoints/Breakpoint.cs
  8. 14
      src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Debugger/Internal/ManagedCallback.cs
  9. 32
      src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Threads/Exception.cs
  10. 18
      src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Threads/ExceptionType.cs
  11. 2
      src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Threads/Function.cs
  12. 14
      src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Threads/SourcecodeSegment.cs
  13. 14
      src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Threads/Thread.cs

9
src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Debugger.AddIn.addin

@ -59,5 +59,12 @@ @@ -59,5 +59,12 @@
icon = "PadIcons.ProjectBrowser"
shortcut = "Control|Alt|V"
class = "ICSharpCode.SharpDevelop.Gui.Pads.LocalVarPad"/>
</Path>
<Pad id = "ExceptionHistoryPad"
category = "Main"
title = "Exception history"
icon = "PadIcons.ProjectBrowser"
shortcut = "Control|Alt|E"
class = "ICSharpCode.SharpDevelop.Gui.Pads.ExceptionHistoryPad"/>
</Path>
</AddIn>

1
src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Debugger.AddIn.csproj

@ -37,6 +37,7 @@ @@ -37,6 +37,7 @@
<Compile Include="Configuration\AssemblyInfo.cs" />
<Compile Include="Src\Pads\BreakPointsPad.cs" />
<Compile Include="Src\Pads\CallStackPad.cs" />
<Compile Include="Src\Pads\ExceptionHistoryPad.cs" />
<Compile Include="Src\Pads\LoadedModulesPad.cs" />
<Compile Include="Src\Pads\LocalVarPad.cs" />
<Compile Include="Src\Pads\RunningThreadsPad.cs" />

4
src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Pads/BreakPointsPad.cs

@ -109,9 +109,9 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads @@ -109,9 +109,9 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
if (e.Breakpoint == item.Tag) {
item.SubItems.Clear();
item.Checked = e.Breakpoint.Enabled;
item.Text = Path.GetFileName(e.Breakpoint.SourcecodeSegment.SourceFilename) + ", Line = " + e.Breakpoint.SourcecodeSegment.StartLine.ToString();
item.Text = Path.GetFileName(e.Breakpoint.SourcecodeSegment.SourceFullFilename) + ", Line = " + e.Breakpoint.SourcecodeSegment.StartLine.ToString();
item.ForeColor = e.Breakpoint.HadBeenSet ? Color.Black : Color.Gray;
item.SubItems.AddRange(new string[] {Path.GetDirectoryName(e.Breakpoint.SourcecodeSegment.SourceFilename)});
item.SubItems.AddRange(new string[] {Path.GetDirectoryName(e.Breakpoint.SourcecodeSegment.SourceFullFilename)});
}
}
}

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

@ -0,0 +1,131 @@ @@ -0,0 +1,131 @@
// <file>
// <owner name="David Srbecký" email="dsrbecky@post.cz"/>
// <owner name="Mike Krueger" email="mike@icsharpcode.net"/>
// </file>
using System;
using System.Windows.Forms;
using System.Drawing;
using System.CodeDom.Compiler;
using System.Collections;
using System.IO;
using System.Diagnostics;
using ICSharpCode.Core;
//using ICSharpCode.Core.Services;
using ICSharpCode.SharpDevelop.Services;
//using ICSharpCode.Core.Properties;
using DebuggerLibrary;
namespace ICSharpCode.SharpDevelop.Gui.Pads
{
public class ExceptionHistoryPad : AbstractPadContent
{
ListView exceptionHistoryList;
//
//WindowsDebugger DebuggerService = (WindowsDebugger)((DebuggerService)ServiceManager.Services.GetService(typeof(DebuggerService))).CurrentDebugger;
WindowsDebugger debugger;
ColumnHeader time = new ColumnHeader();
ColumnHeader exception = new ColumnHeader();
ColumnHeader location = new ColumnHeader();
public override Control Control {
get {
return exceptionHistoryList;
}
}
public ExceptionHistoryPad()
{
InitializeComponents();
}
void InitializeComponents()
{
debugger = (WindowsDebugger)DebuggerService.CurrentDebugger;
exceptionHistoryList = new ListView();
exceptionHistoryList.FullRowSelect = true;
exceptionHistoryList.AutoArrange = true;
exceptionHistoryList.Alignment = ListViewAlignment.Left;
exceptionHistoryList.View = View.Details;
exceptionHistoryList.Dock = DockStyle.Fill;
exceptionHistoryList.GridLines = false;
exceptionHistoryList.Activation = ItemActivation.OneClick;
exceptionHistoryList.Columns.AddRange(new ColumnHeader[] {time, exception, location} );
exceptionHistoryList.ItemActivate += new EventHandler(ExceptionHistoryListItemActivate);
exception.Width = 300;
location.Width = 400;
time.Width = 80;
NDebugger.IsDebuggingChanged += new DebuggerEventHandler(DebuggerStateChanged);
NDebugger.IsProcessRunningChanged += new DebuggerEventHandler(DebuggerStateChanged);
RedrawContent();
}
public override void RedrawContent()
{
time.Text = "Time";
exception.Text = "Exception";
location.Text = "Location";
RefreshList();
}
void ExceptionHistoryListItemActivate(object sender, EventArgs e)
{
SourcecodeSegment nextStatement = ((DebuggerLibrary.Exception)(exceptionHistoryList.SelectedItems[0].Tag)).Location;
FileService.OpenFile(nextStatement.SourceFullFilename);
IWorkbenchWindow window = FileService.GetOpenFile(nextStatement.SourceFullFilename);
if (window != null) {
IViewContent content = window.ViewContent;
if (content is IPositionable) {
((IPositionable)content).JumpTo((int)nextStatement.StartLine - 1, (int)nextStatement.StartColumn - 1);
}
/*if (content.Control is TextEditorControl) {
IDocument document = ((TextEditorControl)content.Control).Document;
LineSegment line = document.GetLineSegment((int)nextStatement.StartLine - 1);
int offset = line.Offset + (int)nextStatement.StartColumn;
currentLineMarker = new TextMarker(offset, (int)nextStatement.EndColumn - (int)nextStatement.StartColumn, TextMarkerType.SolidBlock, Color.Yellow);
currentLineMarkerParent = document;
currentLineMarkerParent.MarkerStrategy.TextMarker.Add(currentLineMarker);
document.RequestUpdate(new TextAreaUpdate(TextAreaUpdateType.WholeTextArea));
document.CommitUpdate();
}*/
}
}
public void DebuggerStateChanged(object sender, DebuggerEventArgs e)
{
RefreshList();
}
public void RefreshList()
{
exceptionHistoryList.BeginUpdate();
exceptionHistoryList.Items.Clear();
foreach(DebuggerLibrary.Exception exception in debugger.ExceptionHistory) {
ListViewItem item = new ListViewItem(new string[] {exception.CreationTime.ToLongTimeString() , exception.Type + " - " + exception.Message, exception.Location.SourceFilename + ":" + exception.Location.StartLine + " (type=" + exception.ExceptionType.ToString() + ")"});
item.Tag = exception;
item.ForeColor = Color.Black;
if (exception.ExceptionType == ExceptionType.DEBUG_EXCEPTION_UNHANDLED) {
item.ForeColor = Color.Red;
}
if (exception.ExceptionType == ExceptionType.DEBUG_EXCEPTION_FIRST_CHANCE ||
exception.ExceptionType == ExceptionType.DEBUG_EXCEPTION_USER_FIRST_CHANCE) {
item.ForeColor = Color.Blue;
}
exceptionHistoryList.Items.Add(item);
}
exceptionHistoryList.EndUpdate();
}
}
}

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

@ -4,6 +4,7 @@ @@ -4,6 +4,7 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.Drawing;
using System.IO;
using System.Windows.Forms;
@ -36,6 +37,8 @@ namespace ICSharpCode.SharpDevelop.Services @@ -36,6 +37,8 @@ namespace ICSharpCode.SharpDevelop.Services
public class WindowsDebugger:IDebugger //, IService
{
public event EventHandler DebugStopped; // FIX: unused
List<DebuggerLibrary.Exception> exceptionHistory = new List<DebuggerLibrary.Exception>();
protected virtual void OnDebugStopped(EventArgs e)
{
@ -71,6 +74,12 @@ namespace ICSharpCode.SharpDevelop.Services @@ -71,6 +74,12 @@ namespace ICSharpCode.SharpDevelop.Services
return true;
}
}
public IList<DebuggerLibrary.Exception> ExceptionHistory {
get {
return exceptionHistory.AsReadOnly();
}
}
public WindowsDebugger()
{
@ -245,7 +254,8 @@ namespace ICSharpCode.SharpDevelop.Services @@ -245,7 +254,8 @@ namespace ICSharpCode.SharpDevelop.Services
void DebuggingPaused(object sender, DebuggingPausedEventArgs e)
{
if (e.Reason == PausedReason.Exception) {
if (NDebugger.CurrentThread.CurrentException.IsHandled && (NDebugger.CatchHandledExceptions == false)) {
exceptionHistory.Add(NDebugger.CurrentThread.CurrentException);
if (NDebugger.CurrentThread.CurrentException.ExceptionType != ExceptionType.DEBUG_EXCEPTION_UNHANDLED && (NDebugger.CatchHandledExceptions == false)) {
// Ignore the exception
Continue();
return;
@ -258,7 +268,7 @@ namespace ICSharpCode.SharpDevelop.Services @@ -258,7 +268,7 @@ namespace ICSharpCode.SharpDevelop.Services
NDebugger.CurrentThread.CurrentException.Type +
" was thrown in debugee:\n" +
NDebugger.CurrentThread.CurrentException.Message;
form.pictureBox.Image = ResourceService.GetBitmap((NDebugger.CurrentThread.CurrentException.IsHandled)?"Icons.32x32.Warning":"Icons.32x32.Error");
form.pictureBox.Image = ResourceService.GetBitmap((NDebugger.CurrentThread.CurrentException.ExceptionType != ExceptionType.DEBUG_EXCEPTION_UNHANDLED)?"Icons.32x32.Warning":"Icons.32x32.Error");
form.ShowDialog(ICSharpCode.SharpDevelop.Gui.WorkbenchSingleton.MainForm);
switch (form.result) {
case ExceptionForm.Result.Break:
@ -267,7 +277,7 @@ namespace ICSharpCode.SharpDevelop.Services @@ -267,7 +277,7 @@ namespace ICSharpCode.SharpDevelop.Services
Continue();
return;
case ExceptionForm.Result.Ignore:
NDebugger.CurrentThread.ClearCurrentException();
System.Diagnostics.Debug.Fail("Not implemented");
Continue();
return;
}
@ -288,7 +298,7 @@ namespace ICSharpCode.SharpDevelop.Services @@ -288,7 +298,7 @@ namespace ICSharpCode.SharpDevelop.Services
void DebuggingStopped(object sender, DebuggerEventArgs e)
{
exceptionHistory.Clear();
//DebuggerService.Stop();//TODO: delete
}
@ -335,8 +345,8 @@ namespace ICSharpCode.SharpDevelop.Services @@ -335,8 +345,8 @@ namespace ICSharpCode.SharpDevelop.Services
}
SourcecodeSegment nextStatement = selectedFunction.NextStatement;
FileService.OpenFile(nextStatement.SourceFilename);
IWorkbenchWindow window = FileService.GetOpenFile(nextStatement.SourceFilename);
FileService.OpenFile(nextStatement.SourceFullFilename);
IWorkbenchWindow window = FileService.GetOpenFile(nextStatement.SourceFullFilename);
if (window != null) {
IViewContent content = window.ViewContent;
@ -400,7 +410,7 @@ namespace ICSharpCode.SharpDevelop.Services @@ -400,7 +410,7 @@ namespace ICSharpCode.SharpDevelop.Services
}
// Add breakpoint markers
foreach (DebuggerLibrary.Breakpoint b in NDebugger.Instance.Breakpoints) {
if (b.SourcecodeSegment.SourceFilename.ToLower() == textEditor.FileName.ToLower()) {
if (b.SourcecodeSegment.SourceFullFilename.ToLower() == textEditor.FileName.ToLower()) {
LineSegment lineSeg = document.GetLineSegment((int)b.SourcecodeSegment.StartLine - 1);
document.MarkerStrategy.TextMarker.Add(new BreakpointMarker(lineSeg.Offset, lineSeg.Length , TextMarkerType.SolidBlock, Color.Red));
}
@ -487,7 +497,7 @@ namespace ICSharpCode.SharpDevelop.Services @@ -487,7 +497,7 @@ namespace ICSharpCode.SharpDevelop.Services
void PaintIconBar(AbstractMargin iconBar, Graphics g, Rectangle rect)
{
foreach (DebuggerLibrary.Breakpoint breakpoint in NDebugger.Instance.Breakpoints) {
if (Path.GetFullPath(breakpoint.SourcecodeSegment.SourceFilename) == Path.GetFullPath(iconBar.TextArea.MotherTextEditorControl.FileName)) {
if (Path.GetFullPath(breakpoint.SourcecodeSegment.SourceFullFilename) == Path.GetFullPath(iconBar.TextArea.MotherTextEditorControl.FileName)) {
int lineNumber = iconBar.TextArea.Document.GetVisibleLine((int)breakpoint.SourcecodeSegment.StartLine - 1);
int yPos = (int)(lineNumber * iconBar.TextArea.TextView.FontHeight) - iconBar.TextArea.VirtualTop.Y;
if (yPos >= rect.Y && yPos <= rect.Bottom) {
@ -500,7 +510,7 @@ namespace ICSharpCode.SharpDevelop.Services @@ -500,7 +510,7 @@ namespace ICSharpCode.SharpDevelop.Services
try {
SourcecodeSegment nextStatement = selectedFunction.NextStatement;//cache
if (Path.GetFullPath(nextStatement.SourceFilename).ToLower() == Path.GetFullPath(iconBar.TextArea.MotherTextEditorControl.FileName).ToLower()) {
if (Path.GetFullPath(nextStatement.SourceFullFilename).ToLower() == Path.GetFullPath(iconBar.TextArea.MotherTextEditorControl.FileName).ToLower()) {
int lineNumber = iconBar.TextArea.Document.GetVisibleLine((int)nextStatement.StartLine - 1);
int yPos = (int)(lineNumber * iconBar.TextArea.TextView.FontHeight) - iconBar.TextArea.VirtualTop.Y;
if (yPos >= rect.Y && yPos <= rect.Bottom) {

5
src/AddIns/Misc/Debugger/Debugger.Core/Project/Debugger.Core.csproj

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
@ -63,6 +63,7 @@ @@ -63,6 +63,7 @@
<Compile Include="Src\Modules\ModuleEventHandler.cs" />
<Compile Include="Src\Modules\NDebugger-Modules.cs" />
<Compile Include="Src\Threads\Exception.cs" />
<Compile Include="Src\Threads\ExceptionType.cs" />
<Compile Include="Src\Threads\Function.cs" />
<Compile Include="Src\Threads\NDebugger-Threads.cs" />
<Compile Include="Src\Threads\SourcecodeSegment.cs" />
@ -86,4 +87,4 @@ @@ -86,4 +87,4 @@
<Content Include="README.TXT" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSHARP.Targets" />
</Project>
</Project>

8
src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Breakpoints/Breakpoint.cs

@ -82,14 +82,14 @@ namespace DebuggerLibrary @@ -82,14 +82,14 @@ namespace DebuggerLibrary
public Breakpoint(string sourceFilename, int line)
{
sourcecodeSegment = new SourcecodeSegment();
sourcecodeSegment.SourceFilename = sourceFilename;
sourcecodeSegment.SourceFullFilename = sourceFilename;
sourcecodeSegment.StartLine = line;
}
public Breakpoint(string sourceFilename, int line, int column)
{
sourcecodeSegment = new SourcecodeSegment();
sourcecodeSegment.SourceFilename = sourceFilename;
sourcecodeSegment.SourceFullFilename = sourceFilename;
sourcecodeSegment.StartLine = line;
sourcecodeSegment.StartColumn = column;
}
@ -140,7 +140,7 @@ namespace DebuggerLibrary @@ -140,7 +140,7 @@ namespace DebuggerLibrary
{
module = NDebugger.Instance.GetModule(seg.ModuleFilename);
symReader = NDebugger.Instance.GetModule(seg.ModuleFilename).SymReader;
symDoc = symReader.GetDocument(seg.SourceFilename,Guid.Empty,Guid.Empty,Guid.Empty);
symDoc = symReader.GetDocument(seg.SourceFullFilename,Guid.Empty,Guid.Empty,Guid.Empty);
}
catch {}
}
@ -154,7 +154,7 @@ namespace DebuggerLibrary @@ -154,7 +154,7 @@ namespace DebuggerLibrary
continue;
}
symDoc = symReader.GetDocument(seg.SourceFilename,Guid.Empty,Guid.Empty,Guid.Empty);
symDoc = symReader.GetDocument(seg.SourceFullFilename,Guid.Empty,Guid.Empty,Guid.Empty);
if (symDoc != null) {
break;

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

@ -116,7 +116,7 @@ namespace DebuggerLibrary @@ -116,7 +116,7 @@ namespace DebuggerLibrary
public unsafe void Exception(ICorDebugAppDomain pAppDomain, ICorDebugThread pThread, int unhandled)
{
EnterCallback("Exception");
/*
if (!NDebugger.CatchHandledExceptions && (unhandled == 0)) {
ExitCallback_Continue();
return;
@ -124,7 +124,7 @@ namespace DebuggerLibrary @@ -124,7 +124,7 @@ namespace DebuggerLibrary
NDebugger.CurrentThread = NDebugger.Instance.GetThread(pThread);
NDebugger.CurrentThread.CurrentExceptionIsHandled = (unhandled == 0);
*/
ExitCallback_Paused(PausedReason.Exception);
}
@ -352,7 +352,15 @@ namespace DebuggerLibrary @@ -352,7 +352,15 @@ namespace DebuggerLibrary
{
EnterCallback("Exception2");
ExitCallback_Continue(pAppDomain);
//if (!NDebugger.CatchHandledExceptions && dwEventType != CorDebugExceptionCallbackType.DEBUG_EXCEPTION_UNHANDLED) {
// ExitCallback_Continue(pAppDomain);
// return;
//}
NDebugger.CurrentThread = NDebugger.Instance.GetThread(pThread);
NDebugger.CurrentThread.CurrentExceptionType = (ExceptionType)dwEventType;
ExitCallback_Paused(PausedReason.Exception);
}
public void ExceptionUnwind(ICorDebugAppDomain pAppDomain, ICorDebugThread pThread, CorDebugExceptionUnwindCallbackType dwEventType, uint dwFlags)

32
src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Threads/Exception.cs

@ -13,15 +13,20 @@ namespace DebuggerLibrary @@ -13,15 +13,20 @@ namespace DebuggerLibrary
{
public class Exception
{
Thread thread;
ICorDebugValue corValue;
Variable runtimeVariable;
ObjectVariable runtimeVariableException;
Thread thread;
ICorDebugValue corValue;
Variable runtimeVariable;
ObjectVariable runtimeVariableException;
ExceptionType exceptionType;
SourcecodeSegment location;
DateTime creationTime;
internal Exception(Thread thread)
{
creationTime = DateTime.Now;
this.thread = thread;
thread.CorThread.GetCurrentException(out corValue);
exceptionType = thread.CurrentExceptionType;
runtimeVariable = VariableFactory.CreateVariable(corValue, "$exception");
runtimeVariableException = (ObjectVariable)runtimeVariable;
while (runtimeVariableException.Type != "System.Exception") {
@ -31,6 +36,7 @@ namespace DebuggerLibrary @@ -31,6 +36,7 @@ namespace DebuggerLibrary
}
runtimeVariableException = runtimeVariableException.BaseClass;
}
location = thread.NextStatement;
}
public override string ToString() {
@ -50,10 +56,22 @@ namespace DebuggerLibrary @@ -50,10 +56,22 @@ namespace DebuggerLibrary
return runtimeVariableException.SubVariables["_message"].Value.ToString();
}
}
public bool IsHandled {
public ExceptionType ExceptionType{
get {
return exceptionType;
}
}
public SourcecodeSegment Location {
get {
return location;
}
}
public DateTime CreationTime {
get {
return thread.CurrentExceptionIsHandled;
return creationTime;
}
}
}

18
src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Threads/ExceptionType.cs

@ -0,0 +1,18 @@ @@ -0,0 +1,18 @@
// <file>
// <owner name="David Srbecký" email="dsrbecky@post.cz"/>
// </file>
using System;
using System.Runtime.InteropServices;
using System.Threading;
namespace DebuggerLibrary
{
public enum ExceptionType
{
DEBUG_EXCEPTION_FIRST_CHANCE = 1,
DEBUG_EXCEPTION_UNHANDLED = 4,
DEBUG_EXCEPTION_USER_FIRST_CHANCE = 2,
DEBUG_EXCEPTION_CATCH_HANDLER_FOUND = 3,
}
}

2
src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Threads/Function.cs

@ -206,7 +206,7 @@ namespace DebuggerLibrary @@ -206,7 +206,7 @@ namespace DebuggerLibrary
retVal.SymbolDocument = Doc[i];
retVal.SourceFilename = retVal.SymbolDocument.URL;
retVal.SourceFullFilename = retVal.SymbolDocument.URL;
retVal.ModuleFilename = module.FullPath;

14
src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Threads/SourcecodeSegment.cs

@ -10,7 +10,7 @@ namespace DebuggerLibrary @@ -10,7 +10,7 @@ namespace DebuggerLibrary
public class SourcecodeSegment
{
string moduleFilename;
string sourceFilename;
string sourceFullFilename;
int startLine;
int startColumn;
int endLine;
@ -26,12 +26,18 @@ namespace DebuggerLibrary @@ -26,12 +26,18 @@ namespace DebuggerLibrary
}
}
public string SourceFilename {
public string SourceFullFilename {
get {
return sourceFilename;
return sourceFullFilename;
}
set {
sourceFilename = value;
sourceFullFilename = value;
}
}
public string SourceFilename {
get {
return System.IO.Path.GetFileName(sourceFullFilename);
}
}

14
src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Threads/Thread.cs

@ -14,7 +14,7 @@ namespace DebuggerLibrary @@ -14,7 +14,7 @@ namespace DebuggerLibrary
{
public partial class Thread
{
internal bool currentExceptionIsHandled;
internal ExceptionType currentExceptionType;
uint id;
bool lastSuspendedState = false;
@ -29,12 +29,12 @@ namespace DebuggerLibrary @@ -29,12 +29,12 @@ namespace DebuggerLibrary
}
}
public bool CurrentExceptionIsHandled {
public ExceptionType CurrentExceptionType {
get {
return currentExceptionIsHandled;
return currentExceptionType;
}
set {
currentExceptionIsHandled = value;
currentExceptionType = value;
}
}
@ -114,12 +114,6 @@ namespace DebuggerLibrary @@ -114,12 +114,6 @@ namespace DebuggerLibrary
}
public void ClearCurrentException()
{
corThread.ClearCurrentException();
}
public Exception CurrentException {
get {
return new Exception(this);

Loading…
Cancel
Save