Browse Source

VariableFactory meged into Variable. ValueFactory merged into Value.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@824 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
David Srbecký 20 years ago
parent
commit
1a08a004e8
  1. 4
      src/AddIns/Misc/Debugger/Debugger.Core/Project/Debugger.Core.csproj
  2. 2
      src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Threads/Exception.cs
  3. 4
      src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Threads/Function.cs
  4. 2
      src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Threads/Thread.cs
  5. 2
      src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Variables/ArrayValue.cs
  6. 2
      src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Variables/Evals/Eval.cs
  7. 6
      src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Variables/ObjectValue.cs
  8. 42
      src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Variables/Value.cs
  9. 58
      src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Variables/ValueFactory.cs
  10. 13
      src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Variables/Variable.cs
  11. 27
      src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Variables/VariableFactory.cs

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

@ -201,15 +201,13 @@ @@ -201,15 +201,13 @@
<Compile Include="Src\Variables\UnavailableValue.cs" />
<Compile Include="Src\Variables\Value.cs" />
<Compile Include="Src\Variables\ValueEventArgs.cs" />
<Compile Include="Src\Variables\ValueFactory.cs" />
<Compile Include="Src\Variables\VariableCollection.cs" />
<Compile Include="Src\Variables\Variable.cs" />
<Compile Include="Src\Variables\VariableEventArgs.cs" />
<Compile Include="Src\Variables\VariableFactory.cs" />
<Compile Include="Src\Variables\VariableCollectionEventArgs.cs" />
</ItemGroup>
<ItemGroup>
<Content Include="README.TXT" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSHARP.Targets" />
</Project>
</Project>

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

@ -42,7 +42,7 @@ namespace Debugger @@ -42,7 +42,7 @@ namespace Debugger
this.thread = thread;
thread.CorThread.GetCurrentException(out corValue);
exceptionType = thread.CurrentExceptionType;
runtimeValue = ValueFactory.CreateValue(debugger, corValue);
runtimeValue = Value.CreateValue(debugger, corValue);
runtimeValueException = runtimeValue as ObjectValue;
if (runtimeValueException != null) {
while (runtimeValueException.Type != "System.Exception") {

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

@ -415,7 +415,7 @@ namespace Debugger @@ -415,7 +415,7 @@ namespace Debugger
public Variable GetArgumentVariable(int index)
{
return VariableFactory.CreateVariable(debugger, GetArgumentValue(index), GetParameterName(index));
return Variable.CreateVariable(debugger, GetArgumentValue(index), GetParameterName(index));
}
public VariableCollection GetArgumentVariables()
@ -481,7 +481,7 @@ namespace Debugger @@ -481,7 +481,7 @@ namespace Debugger
{
ICorDebugValue runtimeVar;
corILFrame.GetLocalVariable((uint)symVar.AddressField1, out runtimeVar);
collection.Add(VariableFactory.CreateVariable(debugger, runtimeVar, symVar.Name));
collection.Add(Variable.CreateVariable(debugger, runtimeVar, symVar.Name));
}
}
}

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

@ -121,7 +121,7 @@ namespace Debugger @@ -121,7 +121,7 @@ namespace Debugger
ICorDebugValue corValue;
corThread.GetObject(out corValue);
return ValueFactory.CreateValue(debugger, corValue);
return Value.CreateValue(debugger, corValue);
}
}

2
src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Variables/ArrayValue.cs

@ -102,7 +102,7 @@ namespace Debugger @@ -102,7 +102,7 @@ namespace Debugger
fixed (void* pIndices = indices)
corArrayValue.GetElement(rank, new IntPtr(pIndices), out element);
return VariableFactory.CreateVariable(debugger, element, elementName);
return Variable.CreateVariable(debugger, element, elementName);
}
}

2
src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Variables/Evals/Eval.cs

@ -138,7 +138,7 @@ namespace Debugger @@ -138,7 +138,7 @@ namespace Debugger
ICorDebugValue corValue;
corEval.GetResult(out corValue);
result = ValueFactory.CreateValue(debugger, corValue);
result = Value.CreateValue(debugger, corValue);
if (EvalComplete != null) {
EvalComplete(this, e);

6
src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Variables/ObjectValue.cs

@ -148,9 +148,9 @@ namespace Debugger @@ -148,9 +148,9 @@ namespace Debugger
((ICorDebugObjectValue)corValue).GetFieldValue(corClass, field.Token, out fieldValue);
}
var = VariableFactory.CreateVariable(debugger, fieldValue, field.Name);
var = Variable.CreateVariable(debugger, fieldValue, field.Name);
} catch {
var = VariableFactory.CreateVariable(new UnavailableValue(debugger), field.Name);
var = Variable.CreateVariable(new UnavailableValue(debugger), field.Name);
}
yield return var;
}
@ -160,7 +160,7 @@ namespace Debugger @@ -160,7 +160,7 @@ namespace Debugger
public Variable BaseClassVariable {
get {
if (HasBaseClass) {
return VariableFactory.CreateVariable(this.BaseClass, "<Base class>");
return Variable.CreateVariable(this.BaseClass, "<Base class>");
} else {
return null;
}

42
src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Variables/Value.cs

@ -174,5 +174,47 @@ namespace Debugger @@ -174,5 +174,47 @@ namespace Debugger
return corValue;
}
internal static Value CreateValue(NDebugger debugger, ICorDebugValue corValue)
{
CorElementType type = Value.GetCorType(corValue);
if (Value.DereferenceUnbox(corValue) == null)
{
return new NullValue(debugger, corValue);
}
switch(type)
{
case CorElementType.BOOLEAN:
case CorElementType.CHAR:
case CorElementType.I1:
case CorElementType.U1:
case CorElementType.I2:
case CorElementType.U2:
case CorElementType.I4:
case CorElementType.U4:
case CorElementType.I8:
case CorElementType.U8:
case CorElementType.R4:
case CorElementType.R8:
case CorElementType.I:
case CorElementType.U:
case CorElementType.STRING:
return new PrimitiveValue(debugger, corValue);
case CorElementType.ARRAY:
case CorElementType.SZARRAY: // Short-cut for single dimension zero lower bound array
return new ArrayValue(debugger, corValue);
case CorElementType.VALUETYPE:
case CorElementType.CLASS:
case CorElementType.OBJECT: // Short-cut for Class "System.Object"
return new ObjectValue(debugger, corValue);
default: // Unknown type
return new UnavailableValue(debugger, "Unknown value type");
}
}
}
}

58
src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Variables/ValueFactory.cs

@ -1,58 +0,0 @@ @@ -1,58 +0,0 @@
// <file>
// <copyright see="prj:///doc/copyright.txt">2002-2005 AlphaSierraPapa</copyright>
// <license see="prj:///doc/license.txt">GNU General Public License</license>
// <owner name="David Srbecký" email="dsrbecky@gmail.com"/>
// <version>$Revision$</version>
// </file>
using System;
using Debugger.Interop.CorDebug;
namespace Debugger
{
static class ValueFactory
{
public static Value CreateValue(NDebugger debugger, ICorDebugValue corValue)
{
CorElementType type = Value.GetCorType(corValue);
if (Value.DereferenceUnbox(corValue) == null)
{
return new NullValue(debugger, corValue);
}
switch(type)
{
case CorElementType.BOOLEAN:
case CorElementType.CHAR:
case CorElementType.I1:
case CorElementType.U1:
case CorElementType.I2:
case CorElementType.U2:
case CorElementType.I4:
case CorElementType.U4:
case CorElementType.I8:
case CorElementType.U8:
case CorElementType.R4:
case CorElementType.R8:
case CorElementType.I:
case CorElementType.U:
case CorElementType.STRING:
return new PrimitiveValue(debugger, corValue);
case CorElementType.ARRAY:
case CorElementType.SZARRAY: // Short-cut for single dimension zero lower bound array
return new ArrayValue(debugger, corValue);
case CorElementType.VALUETYPE:
case CorElementType.CLASS:
case CorElementType.OBJECT: // Short-cut for Class "System.Object"
return new ObjectValue(debugger, corValue);
default: // Unknown type
return new UnavailableValue(debugger, "Unknown value type");
}
}
}
}

13
src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Variables/Variable.cs

@ -7,6 +7,8 @@ @@ -7,6 +7,8 @@
using System;
using Debugger.Interop.CorDebug;
namespace Debugger
{
public class Variable: RemotingObjectBase
@ -103,5 +105,16 @@ namespace Debugger @@ -103,5 +105,16 @@ namespace Debugger
this.subVariables = new VariableCollection(debugger);
this.subVariables.Updating += OnSubVariablesUpdating;
}
internal static Variable CreateVariable(NDebugger debugger, ICorDebugValue corValue, string name)
{
Value val = Value.CreateValue(debugger, corValue);
return CreateVariable(val, name);
}
public static Variable CreateVariable(Value val, string name)
{
return new Variable(val.Debugger, val, name);
}
}
}

27
src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Variables/VariableFactory.cs

@ -1,27 +0,0 @@ @@ -1,27 +0,0 @@
// <file>
// <copyright see="prj:///doc/copyright.txt">2002-2005 AlphaSierraPapa</copyright>
// <license see="prj:///doc/license.txt">GNU General Public License</license>
// <owner name="David Srbecký" email="dsrbecky@gmail.com"/>
// <version>$Revision$</version>
// </file>
using System;
using Debugger.Interop.CorDebug;
namespace Debugger
{
public static class VariableFactory
{
internal static Variable CreateVariable(NDebugger debugger, ICorDebugValue corValue, string name)
{
Value val = ValueFactory.CreateValue(debugger, corValue);
return CreateVariable(val, name);
}
public static Variable CreateVariable(Value val, string name)
{
return new Variable(val.Debugger, val, name);
}
}
}
Loading…
Cancel
Save