diff --git a/VisualPascalABCNETLinux/IB/Debugger/Debugger.cs b/VisualPascalABCNETLinux/IB/Debugger/Debugger.cs index 4122f718c..b4011b82e 100644 --- a/VisualPascalABCNETLinux/IB/Debugger/Debugger.cs +++ b/VisualPascalABCNETLinux/IB/Debugger/Debugger.cs @@ -1097,7 +1097,6 @@ namespace VisualPascalABC bool in_comm = false; bool beg = false; bool in_str = false; - Console.WriteLine("2 jump to " + stackFrame.SourceLocation.FileName + ":" + stackFrame.SourceLocation.Line); for (int i = 0; i < lseg.Words.Count; i++) { diff --git a/VisualPascalABCNETLinux/MonoDebugging/Client/ObjectValue.cs b/VisualPascalABCNETLinux/MonoDebugging/Client/ObjectValue.cs index f9efbb7f2..dd9c288bd 100644 --- a/VisualPascalABCNETLinux/MonoDebugging/Client/ObjectValue.cs +++ b/VisualPascalABCNETLinux/MonoDebugging/Client/ObjectValue.cs @@ -67,11 +67,29 @@ namespace Mono.Debugging.Client [NonSerialized] StackFrame parentFrame; - - static ObjectValue Create (IObjectValueSource source, ObjectPath path, string typeName) + + static ObjectValue Create(IObjectValueSource source, ObjectPath path, string typeName) { - var val = new ObjectValue (); + var val = new ObjectValue(); val.typeName = typeName; + int ptr_ind = val.typeName.IndexOf('*'); + string ptr = ""; + if (ptr_ind != -1) + ptr = val.typeName.Substring(ptr_ind).Replace('*', '^'); + switch (val.typeName.Replace("*","")) + { + case "int": val.typeName = "integer"; break; + case "double": val.typeName = "real"; break; + case "float": val.typeName = "single"; break; + case "uint": val.typeName = "longword"; break; + case "long": val.typeName = "int64"; break; + case "ulong": val.typeName = "uint64"; break; + case "short": val.typeName = "smallint"; break; + case "ushort": val.typeName = "word"; break; + case "sbyte": val.typeName = "shortint"; break; + case "bool": val.typeName = "boolean"; break; + } + val.typeName = ptr+val.typeName.Replace("*", ""); val.source = source; val.path = path; return val; diff --git a/VisualPascalABCNETLinux/MonoDebugging/Debugger/Connection.cs b/VisualPascalABCNETLinux/MonoDebugging/Debugger/Connection.cs index 3033f34ce..e537445b6 100644 --- a/VisualPascalABCNETLinux/MonoDebugging/Debugger/Connection.cs +++ b/VisualPascalABCNETLinux/MonoDebugging/Debugger/Connection.cs @@ -1875,36 +1875,40 @@ namespace Mono.Debugger.Soft return res; } - static ElementType TypeCodeToElementType (TypeCode c, Type t) { - switch (c) { - case TypeCode.Boolean: - return ElementType.Boolean; - case TypeCode.Char: - return ElementType.Char; - case TypeCode.SByte: - return ElementType.I1; - case TypeCode.Byte: - return ElementType.U1; - case TypeCode.Int16: - return ElementType.I2; - case TypeCode.UInt16: - return ElementType.U2; - case TypeCode.Int32: - return ElementType.I4; - case TypeCode.UInt32: - return ElementType.U4; - case TypeCode.Int64: - return ElementType.I8; - case TypeCode.UInt64: - return ElementType.U8; - case TypeCode.Single: - return ElementType.R4; - case TypeCode.Double: - return ElementType.R8; - case TypeCode.Object: - return TypeCodeToElementType(Type.GetTypeCode (t.GetElementType()), t.GetElementType()); - default: - throw new NotImplementedException (); + static ElementType TypeCodeToElementType(TypeCode c, Type t) + { + switch (c) + { + case TypeCode.Boolean: + return ElementType.Boolean; + case TypeCode.Char: + return ElementType.Char; + case TypeCode.SByte: + return ElementType.I1; + case TypeCode.Byte: + return ElementType.U1; + case TypeCode.Int16: + return ElementType.I2; + case TypeCode.UInt16: + return ElementType.U2; + case TypeCode.Int32: + return ElementType.I4; + case TypeCode.UInt32: + return ElementType.U4; + case TypeCode.Int64: + return ElementType.I8; + case TypeCode.UInt64: + return ElementType.U8; + case TypeCode.Single: + return ElementType.R4; + case TypeCode.Double: + return ElementType.R8; + case TypeCode.String: + return ElementType.String; + case TypeCode.Object: + return TypeCodeToElementType(Type.GetTypeCode(t.GetElementType()), t.GetElementType()); + default: + throw new NotImplementedException(); } }