|
|
@ -32,6 +32,22 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads |
|
|
|
|
|
|
|
|
|
|
|
ContextMenu CreateMenu() |
|
|
|
ContextMenu CreateMenu() |
|
|
|
{ |
|
|
|
{ |
|
|
|
|
|
|
|
MenuItem extMethodsItem = new MenuItem(); |
|
|
|
|
|
|
|
extMethodsItem.Header = ResourceService.GetString("MainWindow.Windows.Debug.CallStack.ShowExternalMethods"); |
|
|
|
|
|
|
|
extMethodsItem.IsChecked = DebuggingOptions.Instance.ShowExternalMethods; |
|
|
|
|
|
|
|
extMethodsItem.Click += delegate { |
|
|
|
|
|
|
|
extMethodsItem.IsChecked = DebuggingOptions.Instance.ShowExternalMethods = !DebuggingOptions.Instance.ShowExternalMethods; |
|
|
|
|
|
|
|
RefreshPad(); |
|
|
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
MenuItem moduleItem = new MenuItem(); |
|
|
|
|
|
|
|
moduleItem.Header = ResourceService.GetString("MainWindow.Windows.Debug.CallStack.ShowModuleNames"); |
|
|
|
|
|
|
|
moduleItem.IsChecked = DebuggingOptions.Instance.ShowModuleNames; |
|
|
|
|
|
|
|
moduleItem.Click += delegate { |
|
|
|
|
|
|
|
moduleItem.IsChecked = DebuggingOptions.Instance.ShowModuleNames = !DebuggingOptions.Instance.ShowModuleNames; |
|
|
|
|
|
|
|
RefreshPad(); |
|
|
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
MenuItem argNamesItem = new MenuItem(); |
|
|
|
MenuItem argNamesItem = new MenuItem(); |
|
|
|
argNamesItem.Header = ResourceService.GetString("MainWindow.Windows.Debug.CallStack.ShowArgumentNames"); |
|
|
|
argNamesItem.Header = ResourceService.GetString("MainWindow.Windows.Debug.CallStack.ShowArgumentNames"); |
|
|
|
argNamesItem.IsChecked = DebuggingOptions.Instance.ShowArgumentNames; |
|
|
|
argNamesItem.IsChecked = DebuggingOptions.Instance.ShowArgumentNames; |
|
|
@ -48,19 +64,22 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads |
|
|
|
RefreshPad(); |
|
|
|
RefreshPad(); |
|
|
|
}; |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
MenuItem extMethodsItem = new MenuItem(); |
|
|
|
MenuItem lineItem = new MenuItem(); |
|
|
|
extMethodsItem.Header = ResourceService.GetString("MainWindow.Windows.Debug.CallStack.ShowExternalMethods"); |
|
|
|
lineItem.Header = ResourceService.GetString("MainWindow.Windows.Debug.CallStack.ShowLineNumber"); |
|
|
|
extMethodsItem.IsChecked = DebuggingOptions.Instance.ShowExternalMethods; |
|
|
|
lineItem.IsChecked = DebuggingOptions.Instance.ShowLineNumbers; |
|
|
|
extMethodsItem.Click += delegate { |
|
|
|
lineItem.Click += delegate { |
|
|
|
extMethodsItem.IsChecked = DebuggingOptions.Instance.ShowExternalMethods = !DebuggingOptions.Instance.ShowExternalMethods; |
|
|
|
lineItem.IsChecked = DebuggingOptions.Instance.ShowLineNumbers = !DebuggingOptions.Instance.ShowLineNumbers; |
|
|
|
RefreshPad(); |
|
|
|
RefreshPad(); |
|
|
|
}; |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
return new ContextMenu() { |
|
|
|
return new ContextMenu() { |
|
|
|
Items = { |
|
|
|
Items = { |
|
|
|
|
|
|
|
extMethodsItem, |
|
|
|
|
|
|
|
new Separator(), |
|
|
|
|
|
|
|
moduleItem, |
|
|
|
argNamesItem, |
|
|
|
argNamesItem, |
|
|
|
argValuesItem, |
|
|
|
argValuesItem, |
|
|
|
extMethodsItem |
|
|
|
lineItem |
|
|
|
} |
|
|
|
} |
|
|
|
}; |
|
|
|
}; |
|
|
|
} |
|
|
|
} |
|
|
@ -164,12 +183,21 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
string GetFullName(StackFrame frame) |
|
|
|
internal static string GetFullName(StackFrame frame) |
|
|
|
{ |
|
|
|
{ |
|
|
|
bool showArgumentNames = DebuggingOptions.Instance.ShowArgumentNames; |
|
|
|
bool showArgumentNames = DebuggingOptions.Instance.ShowArgumentNames; |
|
|
|
bool showArgumentValues = DebuggingOptions.Instance.ShowArgumentValues; |
|
|
|
bool showArgumentValues = DebuggingOptions.Instance.ShowArgumentValues; |
|
|
|
|
|
|
|
bool showLineNumber = DebuggingOptions.Instance.ShowLineNumbers; |
|
|
|
|
|
|
|
bool showModuleNames = DebuggingOptions.Instance.ShowModuleNames; |
|
|
|
|
|
|
|
|
|
|
|
StringBuilder name = new StringBuilder(); |
|
|
|
StringBuilder name = new StringBuilder(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// show modules names
|
|
|
|
|
|
|
|
if (showModuleNames) { |
|
|
|
|
|
|
|
name.Append(frame.MethodInfo.DebugModule.ToString()); |
|
|
|
|
|
|
|
name.Append("!"); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
name.Append(frame.MethodInfo.DeclaringType.Name); |
|
|
|
name.Append(frame.MethodInfo.DeclaringType.Name); |
|
|
|
name.Append('.'); |
|
|
|
name.Append('.'); |
|
|
|
name.Append(frame.MethodInfo.Name); |
|
|
|
name.Append(frame.MethodInfo.Name); |
|
|
@ -209,6 +237,18 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads |
|
|
|
} |
|
|
|
} |
|
|
|
name.Append(")"); |
|
|
|
name.Append(")"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// line number
|
|
|
|
|
|
|
|
if (showLineNumber) { |
|
|
|
|
|
|
|
var segmentCode = frame.GetSegmentForOffet(0); |
|
|
|
|
|
|
|
if (segmentCode != null) { |
|
|
|
|
|
|
|
name.Append(ResourceService.GetString("MainWindow.Windows.Debug.CallStack.LineString")); |
|
|
|
|
|
|
|
name.Append(segmentCode.StartLine.ToString()); |
|
|
|
|
|
|
|
name.Append("->"); |
|
|
|
|
|
|
|
name.Append(frame.NextStatement.StartLine.ToString()); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return name.ToString(); |
|
|
|
return name.ToString(); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|