Browse Source
git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/branches/2.0@1254 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61shortcuts
9 changed files with 298 additions and 317 deletions
@ -0,0 +1,100 @@ |
|||||||
|
// <file>
|
||||||
|
// <copyright see="prj:///doc/copyright.txt"/>
|
||||||
|
// <license see="prj:///doc/license.txt"/>
|
||||||
|
// <owner name="David Srbecký" email="dsrbecky@gmail.com"/>
|
||||||
|
// <version>$Revision: 1253 $</version>
|
||||||
|
// </file>
|
||||||
|
|
||||||
|
using System; |
||||||
|
using System.Windows.Forms; |
||||||
|
using System.Drawing; |
||||||
|
using System.CodeDom.Compiler; |
||||||
|
using System.Collections; |
||||||
|
using System.ComponentModel; |
||||||
|
using System.IO; |
||||||
|
using System.Diagnostics; |
||||||
|
using ICSharpCode.Core; |
||||||
|
using ICSharpCode.SharpDevelop.Services; |
||||||
|
|
||||||
|
using Debugger; |
||||||
|
|
||||||
|
namespace ICSharpCode.SharpDevelop.Gui.Pads |
||||||
|
{ |
||||||
|
public partial class CallStackPad |
||||||
|
{ |
||||||
|
public bool ShowArgumentNames { |
||||||
|
get { |
||||||
|
return debugger.Properties.Get("ShowArgumentNames", true); |
||||||
|
} |
||||||
|
set { |
||||||
|
debugger.Properties.Set("ShowArgumentNames", value); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
public bool ShowArgumentValues { |
||||||
|
get { |
||||||
|
return debugger.Properties.Get("ShowArgumentValues", true); |
||||||
|
} |
||||||
|
set { |
||||||
|
debugger.Properties.Set("ShowArgumentValues", value); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
public bool ShowExternalMethods { |
||||||
|
get { |
||||||
|
return debugger.Properties.Get("ShowExternalMethods", false); |
||||||
|
} |
||||||
|
set { |
||||||
|
debugger.Properties.Set("ShowExternalMethods", value); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
ContextMenuStrip CreateContextMenuStrip() |
||||||
|
{ |
||||||
|
ContextMenuStrip menu = new ContextMenuStrip(); |
||||||
|
menu.Opening += FillContextMenuStrip; |
||||||
|
return menu; |
||||||
|
} |
||||||
|
|
||||||
|
void FillContextMenuStrip(object sender, CancelEventArgs e) |
||||||
|
{ |
||||||
|
ContextMenuStrip menu = sender as ContextMenuStrip; |
||||||
|
menu.Items.Clear(); |
||||||
|
|
||||||
|
ToolStripMenuItem argNamesItem; |
||||||
|
argNamesItem = new ToolStripMenuItem(); |
||||||
|
argNamesItem.Text = ResourceService.GetString("MainWindow.Windows.Debug.CallStack.ShowArgumentNames"); |
||||||
|
argNamesItem.Checked = ShowArgumentNames; |
||||||
|
argNamesItem.Click += delegate { |
||||||
|
ShowArgumentNames = !ShowArgumentNames; |
||||||
|
RefreshPad(); |
||||||
|
}; |
||||||
|
|
||||||
|
ToolStripMenuItem argValuesItem; |
||||||
|
argValuesItem = new ToolStripMenuItem(); |
||||||
|
argValuesItem.Text = ResourceService.GetString("MainWindow.Windows.Debug.CallStack.ShowArgumentValues"); |
||||||
|
argValuesItem.Checked = ShowArgumentValues; |
||||||
|
argValuesItem.Click += delegate { |
||||||
|
ShowArgumentValues = !ShowArgumentValues; |
||||||
|
RefreshPad(); |
||||||
|
}; |
||||||
|
|
||||||
|
ToolStripMenuItem extMethodsItem; |
||||||
|
extMethodsItem = new ToolStripMenuItem(); |
||||||
|
extMethodsItem.Text = ResourceService.GetString("MainWindow.Windows.Debug.CallStack.ShowExternalMethods"); |
||||||
|
extMethodsItem.Checked = ShowExternalMethods; |
||||||
|
extMethodsItem.Click += delegate { |
||||||
|
ShowExternalMethods = !ShowExternalMethods; |
||||||
|
RefreshPad(); |
||||||
|
}; |
||||||
|
|
||||||
|
menu.Items.AddRange(new ToolStripItem[] { |
||||||
|
argNamesItem, |
||||||
|
argValuesItem, |
||||||
|
extMethodsItem |
||||||
|
}); |
||||||
|
|
||||||
|
e.Cancel = false; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
@ -0,0 +1,60 @@ |
|||||||
|
// <file>
|
||||||
|
// <copyright see="prj:///doc/copyright.txt"/>
|
||||||
|
// <license see="prj:///doc/license.txt"/>
|
||||||
|
// <owner name="David Srbecký" email="dsrbecky@gmail.com"/>
|
||||||
|
// <version>$Revision: 1064 $</version>
|
||||||
|
// </file>
|
||||||
|
|
||||||
|
using System; |
||||||
|
using ICSharpCode.Core; |
||||||
|
using ICSharpCode.SharpDevelop.Services; |
||||||
|
|
||||||
|
using Debugger; |
||||||
|
|
||||||
|
namespace ICSharpCode.SharpDevelop.Gui.Pads |
||||||
|
{ |
||||||
|
public abstract class DebuggerPad: AbstractPadContent |
||||||
|
{ |
||||||
|
protected WindowsDebugger debugger; |
||||||
|
protected NDebugger debuggerCore; |
||||||
|
|
||||||
|
public DebuggerPad() |
||||||
|
{ |
||||||
|
debugger = (WindowsDebugger)DebuggerService.CurrentDebugger; |
||||||
|
|
||||||
|
InitializeComponents(); |
||||||
|
|
||||||
|
if (debugger.ServiceInitialized) { |
||||||
|
InitializeDebugger(); |
||||||
|
} else { |
||||||
|
debugger.Initialize += delegate { |
||||||
|
InitializeDebugger(); |
||||||
|
}; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
protected virtual void InitializeComponents() |
||||||
|
{ |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
void InitializeDebugger() |
||||||
|
{ |
||||||
|
debuggerCore = debugger.DebuggerCore; |
||||||
|
|
||||||
|
RegisterDebuggerEvents(); |
||||||
|
|
||||||
|
RefreshPad(); |
||||||
|
} |
||||||
|
|
||||||
|
protected virtual void RegisterDebuggerEvents() |
||||||
|
{ |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
public virtual void RefreshPad() |
||||||
|
{ |
||||||
|
|
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
@ -0,0 +1,76 @@ |
|||||||
|
// <file>
|
||||||
|
// <copyright see="prj:///doc/copyright.txt"/>
|
||||||
|
// <license see="prj:///doc/license.txt"/>
|
||||||
|
// <owner name="David Srbecký" email="dsrbecky@gmail.com"/>
|
||||||
|
// <version>$Revision: 1253 $</version>
|
||||||
|
// </file>
|
||||||
|
|
||||||
|
using System; |
||||||
|
using System.Windows.Forms; |
||||||
|
using System.Drawing; |
||||||
|
using System.CodeDom.Compiler; |
||||||
|
using System.Collections; |
||||||
|
using System.ComponentModel; |
||||||
|
using System.IO; |
||||||
|
using System.Diagnostics; |
||||||
|
using ICSharpCode.Core; |
||||||
|
using ICSharpCode.SharpDevelop.Services; |
||||||
|
|
||||||
|
using Debugger; |
||||||
|
|
||||||
|
namespace ICSharpCode.SharpDevelop.Gui.Pads |
||||||
|
{ |
||||||
|
public partial class RunningThreadsPad |
||||||
|
{ |
||||||
|
ContextMenuStrip CreateContextMenuStrip() |
||||||
|
{ |
||||||
|
ContextMenuStrip menu = new ContextMenuStrip(); |
||||||
|
menu.Opening += FillContextMenuStrip; |
||||||
|
return menu; |
||||||
|
} |
||||||
|
|
||||||
|
void FillContextMenuStrip(object sender, CancelEventArgs e) |
||||||
|
{ |
||||||
|
ListView.SelectedListViewItemCollection items = runningThreadsList.SelectedItems; |
||||||
|
|
||||||
|
if (items.Count == 0) { |
||||||
|
e.Cancel = true; |
||||||
|
return; |
||||||
|
} |
||||||
|
|
||||||
|
ListViewItem item = items[0]; |
||||||
|
|
||||||
|
ContextMenuStrip menu = sender as ContextMenuStrip; |
||||||
|
menu.Items.Clear(); |
||||||
|
|
||||||
|
ToolStripMenuItem freezeItem; |
||||||
|
freezeItem = new ToolStripMenuItem(); |
||||||
|
freezeItem.Text = ResourceService.GetString("MainWindow.Windows.Debug.Threads.Freeze"); |
||||||
|
freezeItem.Checked = (item.Tag as Thread).Suspended; |
||||||
|
freezeItem.Click += |
||||||
|
delegate { |
||||||
|
ListView.SelectedListViewItemCollection selItems = runningThreadsList.SelectedItems; |
||||||
|
if (selItems.Count == 0) { |
||||||
|
return; |
||||||
|
} |
||||||
|
bool suspended = (selItems[0].Tag as Thread).Suspended; |
||||||
|
|
||||||
|
if (!debuggerCore.IsPaused) { |
||||||
|
MessageBox.Show("You can not freeze or thaw thread while the debugger is running.", "Thread freeze"); |
||||||
|
return; |
||||||
|
} |
||||||
|
|
||||||
|
foreach(ListViewItem i in selItems) { |
||||||
|
(i.Tag as Thread).Suspended = !suspended; |
||||||
|
} |
||||||
|
RefreshPad(); |
||||||
|
}; |
||||||
|
|
||||||
|
menu.Items.AddRange(new ToolStripItem[] { |
||||||
|
freezeItem, |
||||||
|
}); |
||||||
|
|
||||||
|
e.Cancel = false; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
Loading…
Reference in new issue