Browse Source

Updating Debugger.Addin to the new metadata API (the whole solution compiles again)

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@5120 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
David Srbecký 16 years ago
parent
commit
bee95cb2a3
  1. 18
      src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/TreeModel/ChildNodesOfObject.cs
  2. 12
      src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/TreeModel/ExpressionNode.cs
  3. 4
      src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/TreeModel/StackFrameNode.cs
  4. 9
      src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/Graph/ObjectGraph/ObjectGraphBuilder.cs
  5. 6
      src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/Graph/ObjectGraph/ObjectGraphProperty.cs
  6. 4
      src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/GridVisualizer/GridVisualizerWindow.xaml.cs
  7. 3
      src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/GridVisualizer/ObjectValue.cs
  8. 4
      src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/GridVisualizer/ValueProviders/EnumerableValuesProvider.cs
  9. 1
      src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/GridVisualizer/ValueProviders/ListValuesProvider.cs
  10. 10
      src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/Utils/DebuggerHelpers.cs
  11. 16
      src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/Utils/TypeResolver.cs

18
src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/TreeModel/ChildNodesOfObject.cs

@ -6,13 +6,14 @@ @@ -6,13 +6,14 @@
using System.Collections;
using System.Collections.Generic;
using System.Reflection;
using Debugger.AddIn.Visualizers.Utils;
using Debugger.MetaData;
using ICSharpCode.Core;
using ICSharpCode.NRefactory.Ast;
using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Services;
using System.Reflection;
namespace Debugger.AddIn.TreeModel
{
@ -25,7 +26,7 @@ namespace Debugger.AddIn.TreeModel @@ -25,7 +26,7 @@ namespace Debugger.AddIn.TreeModel
MemberInfo[] nonPublicStatic = shownType.GetFieldsAndNonIndexedProperties(BindingFlags.NonPublic | BindingFlags.Static | BindingFlags.DeclaredOnly);
MemberInfo[] nonPublicInstance = shownType.GetFieldsAndNonIndexedProperties(BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly);
DebugType baseType = shownType.BaseType;
DebugType baseType = (DebugType)shownType.BaseType;
if (baseType != null) {
yield return new TreeNode(
DebuggerResourceService.GetImage("Icons.16x16.Class"),
@ -42,19 +43,19 @@ namespace Debugger.AddIn.TreeModel @@ -42,19 +43,19 @@ namespace Debugger.AddIn.TreeModel
StringParser.Parse("${res:MainWindow.Windows.Debug.LocalVariables.NonPublicMembers}"),
string.Empty,
string.Empty,
Utils.LazyGetMembersOfObject(targetObject, shownType, nonPublicInstance)
Utils.LazyGetMembersOfObject(targetObject, nonPublicInstance)
);
}
if (publicStatic.Length > 0 || nonPublicStatic.Length > 0) {
IEnumerable<TreeNode> childs = Utils.LazyGetMembersOfObject(targetObject, shownType, publicStatic);
IEnumerable<TreeNode> childs = Utils.LazyGetMembersOfObject(targetObject, publicStatic);
if (nonPublicStatic.Length > 0) {
TreeNode nonPublicStaticNode = new TreeNode(
null,
StringParser.Parse("${res:MainWindow.Windows.Debug.LocalVariables.NonPublicStaticMembers}"),
string.Empty,
string.Empty,
Utils.LazyGetMembersOfObject(targetObject, shownType, nonPublicStatic)
Utils.LazyGetMembersOfObject(targetObject, nonPublicStatic)
);
childs = Utils.PrependNode(nonPublicStaticNode, childs);
}
@ -67,7 +68,7 @@ namespace Debugger.AddIn.TreeModel @@ -67,7 +68,7 @@ namespace Debugger.AddIn.TreeModel
);
}
DebugType iListType = shownType.GetInterface(typeof(IList).FullName);
DebugType iListType = (DebugType)shownType.GetInterface(typeof(IList).FullName);
if (iListType != null) {
yield return new IListNode(targetObject);
} else {
@ -78,7 +79,7 @@ namespace Debugger.AddIn.TreeModel @@ -78,7 +79,7 @@ namespace Debugger.AddIn.TreeModel
}
}
foreach(TreeNode node in LazyGetMembersOfObject(targetObject, shownType, publicInstance)) {
foreach(TreeNode node in LazyGetMembersOfObject(targetObject, publicInstance)) {
yield return node;
}
}
@ -87,8 +88,7 @@ namespace Debugger.AddIn.TreeModel @@ -87,8 +88,7 @@ namespace Debugger.AddIn.TreeModel
{
List<TreeNode> nodes = new List<TreeNode>();
foreach(MemberInfo memberInfo in members) {
members.Add(new ExpressionNode(ExpressionNode.GetImageForMember(memberInfo), memberInfo.Name, expression.AppendMemberReference(memberInfo)));
nodes.Add(new ExpressionNode(ExpressionNode.GetImageForMember((IDebugMemberInfo)memberInfo), memberInfo.Name, expression.AppendMemberReference((IDebugMemberInfo)memberInfo)));
}
nodes.Sort();
return nodes;

12
src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/TreeModel/ExpressionNode.cs

@ -4,14 +4,16 @@ @@ -4,14 +4,16 @@
// <version>$Revision$</version>
// </file>
using Debugger.AddIn.Visualizers;
using Debugger.AddIn.Visualizers.Utils;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Globalization;
using System.Reflection;
using System.Runtime.InteropServices;
using System.Windows.Forms;
using Debugger.AddIn.Visualizers;
using Debugger.AddIn.Visualizers.Utils;
using Debugger.MetaData;
using ICSharpCode.Core;
using ICSharpCode.Core.WinForms;
@ -239,13 +241,13 @@ namespace Debugger.AddIn.TreeModel @@ -239,13 +241,13 @@ namespace Debugger.AddIn.TreeModel
return DebuggerResourceService.GetImage("Icons.16x16.Field");
}
public static IImage GetImageForMember(MemberInfo memberInfo)
public static IImage GetImageForMember(IDebugMemberInfo memberInfo)
{
string name = string.Empty;
if (memberInfo.IsPublic) {
} else if (memberInfo.IsInternal) {
} else if (memberInfo.IsAssembly) {
name += "Internal";
} else if (memberInfo.IsProtected) {
} else if (memberInfo.IsFamily) {
name += "Protected";
} else if (memberInfo.IsPrivate) {
name += "Private";

4
src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/TreeModel/StackFrameNode.cs

@ -31,8 +31,8 @@ namespace Debugger.AddIn.TreeModel @@ -31,8 +31,8 @@ namespace Debugger.AddIn.TreeModel
foreach(DebugParameterInfo par in stackFrame.MethodInfo.GetParameters()) {
yield return new ExpressionNode(ExpressionNode.GetImageForParameter(), par.Name, new IdentifierExpression(par.Name));
}
foreach(string loc in stackFrame.MethodInfo.LocalVariableNames) {
yield return new ExpressionNode(ExpressionNode.GetImageForLocalVariable(), loc, new IdentifierExpression(loc));
foreach(DebugLocalVariableInfo locVar in stackFrame.MethodInfo.GetLocalVariables()) {
yield return new ExpressionNode(ExpressionNode.GetImageForLocalVariable(), locVar.Name, new IdentifierExpression(locVar.Name));
}
if (stackFrame.Thread.CurrentException != null) {
yield return new ExpressionNode(null, "__exception", new IdentifierExpression("__exception"));

9
src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/Graph/ObjectGraph/ObjectGraphBuilder.cs

@ -13,6 +13,7 @@ using Debugger.AddIn.Visualizers.Utils; @@ -13,6 +13,7 @@ using Debugger.AddIn.Visualizers.Utils;
using Debugger.MetaData;
using ICSharpCode.NRefactory.Ast;
using ICSharpCode.SharpDevelop.Services;
using System.Reflection;
namespace Debugger.AddIn.Visualizers.Graph
{
@ -59,10 +60,10 @@ namespace Debugger.AddIn.Visualizers.Graph @@ -59,10 +60,10 @@ namespace Debugger.AddIn.Visualizers.Graph
/// <summary>
/// Binding flags for getting member expressions.
/// </summary>
private readonly Debugger.MetaData.BindingFlags memberBindingFlags =
private readonly BindingFlags memberBindingFlags =
BindingFlags.Public | BindingFlags.Instance;
private readonly Debugger.MetaData.BindingFlags nonPublicInstanceMemberFlags =
private readonly BindingFlags nonPublicInstanceMemberFlags =
BindingFlags.NonPublic | BindingFlags.Instance;
/// <summary>
@ -194,7 +195,7 @@ namespace Debugger.AddIn.Visualizers.Graph @@ -194,7 +195,7 @@ namespace Debugger.AddIn.Visualizers.Graph
{
var baseClassNode = new BaseClassNode(type.BaseType.FullName, type.BaseType.Name);
node.AddChild(baseClassNode);
loadNodeObjectContent(baseClassNode, expression, type.BaseType);
loadNodeObjectContent(baseClassNode, expression, (DebugType)type.BaseType);
}
// non-public members
@ -233,7 +234,7 @@ namespace Debugger.AddIn.Visualizers.Graph @@ -233,7 +234,7 @@ namespace Debugger.AddIn.Visualizers.Graph
// ObjectGraphProperty needs an expression
// to use expanded / nonexpanded (and to evaluate?)
Expression propExpression = expression.AppendMemberReference(memberProp);
Expression propExpression = expression.AppendMemberReference((IDebugMemberInfo)memberProp);
// Value, IsAtomic are lazy evaluated
propertyList.Add(new ObjectGraphProperty
{ Name = memberProp.Name,

6
src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/Graph/ObjectGraph/ObjectGraphProperty.cs

@ -4,11 +4,13 @@ @@ -4,11 +4,13 @@
// <owner name="Martin Koníček" email="martin.konicek@gmail.com"/>
// <version>$Revision$</version>
// </file>
using ICSharpCode.SharpDevelop.Services;
using System;
using System.Collections.Generic;
using System.Reflection;
using System.Text;
using Debugger.AddIn.Visualizers.Utils;
using ICSharpCode.SharpDevelop.Services;
namespace Debugger.AddIn.Visualizers.Graph
{
@ -35,7 +37,7 @@ namespace Debugger.AddIn.Visualizers.Graph @@ -35,7 +37,7 @@ namespace Debugger.AddIn.Visualizers.Graph
/// <summary>
/// MemberInfo used for obtaining value of this property
/// </summary>
public Debugger.MetaData.MemberInfo PropInfo { get; set; }
public MemberInfo PropInfo { get; set; }
bool evaluateCalled = false;

4
src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/GridVisualizer/GridVisualizerWindow.xaml.cs

@ -4,11 +4,11 @@ @@ -4,11 +4,11 @@
// <owner name="Martin Koníček" email="martin.konicek@gmail.com"/>
// <version>$Revision$</version>
// </file>
using Debugger.AddIn.Visualizers.PresentationBindings;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Windows;
using System.Windows.Controls;
@ -16,7 +16,9 @@ using System.Windows.Data; @@ -16,7 +16,9 @@ using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using Debugger.AddIn.Visualizers.Common;
using Debugger.AddIn.Visualizers.PresentationBindings;
using Debugger.AddIn.Visualizers.Utils;
using Debugger.MetaData;
using ICSharpCode.SharpDevelop;

3
src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/GridVisualizer/ObjectValue.cs

@ -4,12 +4,13 @@ @@ -4,12 +4,13 @@
// <owner name="Martin Koníček" email="martin.konicek@gmail.com"/>
// <version>$Revision$</version>
// </file>
using ICSharpCode.SharpDevelop.Services;
using System;
using System.Collections.Generic;
using Debugger.AddIn.Visualizers.Utils;
using Debugger.MetaData;
using ICSharpCode.NRefactory.Ast;
using ICSharpCode.SharpDevelop.Services;
using System.Reflection;
namespace Debugger.AddIn.Visualizers.GridVisualizer
{

4
src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/GridVisualizer/ValueProviders/EnumerableValuesProvider.cs

@ -4,14 +4,16 @@ @@ -4,14 +4,16 @@
// <owner name="Martin Koníček" email="martin.konicek@gmail.com"/>
// <version>$Revision$</version>
// </file>
using ICSharpCode.Core;
using System;
using System.Collections;
using System.Collections.Generic;
using Debugger.AddIn.Visualizers.Utils;
using Debugger.MetaData;
using ICSharpCode.Core;
using ICSharpCode.NRefactory.Ast;
using ICSharpCode.SharpDevelop.Services;
using System.Reflection;
namespace Debugger.AddIn.Visualizers.GridVisualizer
{

1
src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/GridVisualizer/ValueProviders/ListValuesProvider.cs

@ -10,6 +10,7 @@ using Debugger.AddIn.Visualizers.Utils; @@ -10,6 +10,7 @@ using Debugger.AddIn.Visualizers.Utils;
using Debugger.MetaData;
using ICSharpCode.NRefactory.Ast;
using ICSharpCode.SharpDevelop.Services;
using System.Reflection;
namespace Debugger.AddIn.Visualizers.GridVisualizer
{

10
src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/Utils/DebuggerHelpers.cs

@ -70,7 +70,7 @@ namespace Debugger.AddIn.Visualizers.Utils @@ -70,7 +70,7 @@ namespace Debugger.AddIn.Visualizers.Utils
/// <summary>
/// System.Runtime.CompilerServices.GetHashCode method, for obtaining non-overriden hash codes from debuggee.
/// </summary>
private static MethodInfo hashCodeMethod;
private static DebugMethodInfo hashCodeMethod;
/// <summary>
/// Invokes RuntimeHelpers.GetHashCode on given value, that is a default hashCode ignoring user overrides.
@ -79,12 +79,10 @@ namespace Debugger.AddIn.Visualizers.Utils @@ -79,12 +79,10 @@ namespace Debugger.AddIn.Visualizers.Utils
/// <returns>Hash code of the object in the debugee.</returns>
public static int InvokeDefaultGetHashCode(this Value value)
{
if (DebuggerHelpers.hashCodeMethod == null || DebuggerHelpers.hashCodeMethod.Process.HasExited)
{
if (hashCodeMethod == null || hashCodeMethod.Process.HasExited) {
DebugType typeRuntimeHelpers = DebugType.CreateFromType(value.AppDomain, typeof(System.Runtime.CompilerServices.RuntimeHelpers));
DebuggerHelpers.hashCodeMethod = typeRuntimeHelpers.GetMethod("GetHashCode", BindingFlags.Public | BindingFlags.Static);
if (DebuggerHelpers.hashCodeMethod == null)
{
hashCodeMethod = (DebugMethodInfo)typeRuntimeHelpers.GetMethod("GetHashCode", BindingFlags.Public | BindingFlags.Static);
if (hashCodeMethod == null) {
throw new DebuggerException("Cannot obtain method System.Runtime.CompilerServices.RuntimeHelpers.GetHashCode");
}
}

16
src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/Utils/TypeResolver.cs

@ -25,15 +25,13 @@ namespace Debugger.AddIn.Visualizers.Utils @@ -25,15 +25,13 @@ namespace Debugger.AddIn.Visualizers.Utils
/// <param name="fullNamePrefix">Eg. "System.Collections.Generic.IList"</param>
public static DebugType GetGenericInterface(this DebugType type, string fullNamePrefix)
{
foreach(DebugType inter in type.Interfaces)
{
if (inter.FullName.StartsWith(fullNamePrefix) && inter.GenericArguments.Count > 0)
{
foreach(DebugType inter in type.GetInterfaces()) {
if (inter.FullName.StartsWith(fullNamePrefix) && inter.GetGenericArguments().Length > 0) {
return inter;
}
}
// not found, search BaseType
return type.BaseType == null ? null : type.BaseType.GetGenericInterface(fullNamePrefix);
return type.BaseType == null ? null : (DebugType)type.BaseType.GetInterface(fullNamePrefix);
}
/// <summary>
@ -76,11 +74,9 @@ namespace Debugger.AddIn.Visualizers.Utils @@ -76,11 +74,9 @@ namespace Debugger.AddIn.Visualizers.Utils
itemType = null;
implementation = type.GetGenericInterface(fullNamePrefix);
if (implementation != null)
{
if (implementation.GenericArguments.Count == 1)
{
itemType = implementation.GenericArguments[0];
if (implementation != null) {
if (implementation.GetGenericArguments().Length == 1) {
itemType = (DebugType)implementation.GetGenericArguments()[0];
return true;
}
}

Loading…
Cancel
Save