Skip to content
Original file line number Diff line number Diff line change
Expand Up @@ -870,6 +870,7 @@
<type fullname="System.Reflection.ParameterModifier" />
<type fullname="System.Reflection.PropertyAttributes" />
<type fullname="System.Reflection.PropertyInfo" />
<type fullname="System.Reflection.ReflectionTypeLoadException" />
<type fullname="System.Reflection.RuntimeReflectionExtensions" />
<type fullname="System.Reflection.TargetInvocationException" />
<type fullname="System.Reflection.TargetParameterCountException" />
Expand Down

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -593,11 +593,6 @@ private ParameterExpression GetParameterExpression(List<ParameterExpression> par
}
}

private bool IsSafeException(Type type)
{
return typeof(Exception).IsAssignableFrom(type) && IsMicrosoftType(type);
}

private bool IsMicrosoftType(Type type)
{
var @namespace = type.Namespace;
Expand Down

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ Expressions: (
var StringArg = (string)scopeMemberArray[18].Value;
var CollectionArg = (List<string>)scopeMemberArray[19].Value;
var NestedObjectArg = (DebuggerExpressionLanguageTests.TestStruct.NestedObject)scopeMemberArray[20].Value;
var $dd_el_result = (this.NullableNullValue == null)
var $dd_el_result = !this.NullableNullValue.HasValue
? "null"
: {
fieldsArray = ProbeExpressionParser<string>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ Expressions: (
var StringArg = (string)scopeMemberArray[18].Value;
var CollectionArg = (List<string>)scopeMemberArray[19].Value;
var NestedObjectArg = (DebuggerExpressionLanguageTests.TestStruct.NestedObject)scopeMemberArray[20].Value;
var $dd_el_result = (this.NullableNotNullValue == null)
var $dd_el_result = !this.NullableNotNullValue.HasValue
? "null"
: {
fieldsArray = ProbeExpressionParser<string>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,9 @@ Expressions: (
{
string loopItem;
IEnumerator<string> enumerator;
int index;
StringBuilder itemValues;
int index, index2;
StringBuilder itemValues, fieldValues;
FieldInfo[] fieldsArray;
var this = (scopeMember.Value == null)
? default(DebuggerExpressionLanguageTests.TestStruct)
: (DebuggerExpressionLanguageTests.TestStruct)scopeMember.Value;
Expand Down Expand Up @@ -42,49 +43,96 @@ Expressions: (
var StringArg = (string)scopeMemberArray[18].Value;
var CollectionArg = (List<string>)scopeMemberArray[19].Value;
var NestedObjectArg = (DebuggerExpressionLanguageTests.TestStruct.NestedObject)scopeMemberArray[20].Value;
var $dd_el_result = (this.Collection == null)
? "null"
: {
enumerator = this.Collection.GetEnumerator();
index = 0;
itemValues = new StringBuilder();
itemValues.Append("[");
while (true)
{
if (enumerator.MoveNext())
{
string loopItem;
var $dd_el_result =
{
var dumpValue = (object)this.Collection;

if (index < 3)
{
if (index > 0)
return (dumpValue == null)
? "null"
: ProbeExpressionParser<string>.IsRedactedRuntimeValue(dumpValue, typeof(List<string>))
? "{redacted}"
: (dumpValue.GetType() == typeof(List<string>))
? {
enumerator = ((List<string>)dumpValue).GetEnumerator();
index = 0;
itemValues = new StringBuilder();
itemValues.Append("[");
while (true)
{
return itemValues.Append(", ");
if (enumerator.MoveNext())
{
string loopItem;

if (index < 3)
{
if (index > 0)
{
return itemValues.Append(", ");
}

loopItem = enumerator.Current;
itemValues.Append(ProbeExpressionParser<string>.DumpObject(
loopItem,
typeof(string),
"",
1));
index++;
}
else
{
itemValues.Append(", ...");
break;
}
}
else
{
break;
}
}
itemValues.Append("]");

loopItem = enumerator.Current;
itemValues.Append(ProbeExpressionParser<string>.DumpObject(
loopItem,
typeof(string),
"",
1));
index++;
return itemValues.ToString();
}
else
{
itemValues.Append(", ...");
break;
}
}
else
{
break;
}
}
itemValues.Append("]");
: {
fieldsArray = ProbeExpressionParser<string>
.GetSafeFieldsForDump(
dumpValue.GetType().GetFields(
BindingFlags.DeclaredOnly | BindingFlags.Instance | BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic))
.OrderBy(fieldInfo => fieldInfo.MetadataToken)
.ToArray();
fieldValues = new StringBuilder();
index2 = 0;
while (true)
{
if ((index2 < fieldsArray.Length) && (index2 < 5))
{
fieldValues.Append(
ProbeExpressionParser<string>.DumpObject(
ProbeExpressionParser<string>.GetFieldValueForDump(fieldsArray[index2], (object)dumpValue),
fieldsArray[index2].FieldType,
fieldsArray[index2].Name,
0));
index2++;

if ((index2 < fieldsArray.Length) && (index2 < 5))
{
return fieldValues.Append(", ");
}
}
else
{
if (index2 < fieldsArray.Length)
{
return fieldValues.Append(", ...");
}

break;
}
}

return itemValues.ToString();
};
return fieldValues.ToString();
};
};

return $dd_el_result;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,49 +46,56 @@ Expressions: (
var StringArg = (string)scopeMemberArray[18].Value;
var CollectionArg = (List<string>)scopeMemberArray[19].Value;
var NestedObjectArg = (DebuggerExpressionLanguageTests.TestStruct.NestedObject)scopeMemberArray[20].Value;
var $dd_el_result = (((DebuggerExpressionLanguageTests.TestStruct.NestedObject)CustomArrayLocal[0]) == null)
? "null"
: {
fieldsArray = ProbeExpressionParser<string>
.GetSafeFieldsForDump(
((DebuggerExpressionLanguageTests.TestStruct.NestedObject)CustomArrayLocal[0]).GetType().GetFields(
BindingFlags.DeclaredOnly | BindingFlags.Instance | BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic))
.OrderBy(fieldInfo => fieldInfo.MetadataToken)
.ToArray();
fieldValues = new StringBuilder();
index = 0;
while (true)
{
if ((index < fieldsArray.Length) && (index < 5))
{
fieldValues.Append(
ProbeExpressionParser<string>.DumpObject(
ProbeExpressionParser<string>.GetFieldValueForDump(
fieldsArray[index],
(object)((DebuggerExpressionLanguageTests.TestStruct.NestedObject)CustomArrayLocal[0])),
fieldsArray[index].FieldType,
fieldsArray[index].Name,
0));
index++;
var $dd_el_result =
{
var dumpValue = (object)((DebuggerExpressionLanguageTests.TestStruct.NestedObject)CustomArrayLocal[0]);

if ((index < fieldsArray.Length) && (index < 5))
return (dumpValue == null)
? "null"
: ProbeExpressionParser<string>.IsRedactedRuntimeValue(
dumpValue,
typeof(DebuggerExpressionLanguageTests.TestStruct.NestedObject))
? "{redacted}"
: {
fieldsArray = ProbeExpressionParser<string>
.GetSafeFieldsForDump(
dumpValue.GetType().GetFields(
BindingFlags.DeclaredOnly | BindingFlags.Instance | BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic))
.OrderBy(fieldInfo => fieldInfo.MetadataToken)
.ToArray();
fieldValues = new StringBuilder();
index = 0;
while (true)
{
return fieldValues.Append(", ");
}
}
else
{
if (index < fieldsArray.Length)
{
return fieldValues.Append(", ...");
}
if ((index < fieldsArray.Length) && (index < 5))
{
fieldValues.Append(
ProbeExpressionParser<string>.DumpObject(
ProbeExpressionParser<string>.GetFieldValueForDump(fieldsArray[index], (object)dumpValue),
fieldsArray[index].FieldType,
fieldsArray[index].Name,
0));
index++;

break;
}
}
if ((index < fieldsArray.Length) && (index < 5))
{
return fieldValues.Append(", ");
}
}
else
{
if (index < fieldsArray.Length)
{
return fieldValues.Append(", ...");
}

break;
}
}

return fieldValues.ToString();
};
return fieldValues.ToString();
};
};

return $dd_el_result;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,10 +38,17 @@ Expressions: (
var StringArg = (string)scopeMemberArray[18].Value;
var CollectionArg = (List<string>)scopeMemberArray[19].Value;
var NestedObjectArg = (DebuggerExpressionLanguageTests.TestStruct.NestedObject)scopeMemberArray[20].Value;
var $dd_el_result = (@exception == null)
? "System.Exception"
: "System.Exception" + ", " + @exception.Message + ", " + @exception.StackTrace;
var $dd_el_result =
{
var dumpValue = (object)@exception;

return (dumpValue == null)
? "System.Exception"
: ProbeExpressionParser<string>.IsRedactedRuntimeValue(dumpValue, typeof(Exception))
? "{redacted}"
: ProbeExpressionParser<string>.DumpException((Exception)dumpValue, null);
};

return $dd_el_result;
}
Result: The result of the expression is: System.Exception, Can not cast X to Y,
Result: The result of the expression is: System.InvalidCastException, Can not cast X to Y,
Original file line number Diff line number Diff line change
Expand Up @@ -41,47 +41,56 @@ Expressions: (
var StringArg = (string)scopeMemberArray[18].Value;
var CollectionArg = (List<string>)scopeMemberArray[19].Value;
var NestedObjectArg = (DebuggerExpressionLanguageTests.TestStruct.NestedObject)scopeMemberArray[20].Value;
var $dd_el_result = (this.Nested == null)
? "null"
: {
fieldsArray = ProbeExpressionParser<string>
.GetSafeFieldsForDump(
this.Nested.GetType().GetFields(
BindingFlags.DeclaredOnly | BindingFlags.Instance | BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic))
.OrderBy(fieldInfo => fieldInfo.MetadataToken)
.ToArray();
fieldValues = new StringBuilder();
index = 0;
while (true)
{
if ((index < fieldsArray.Length) && (index < 5))
{
fieldValues.Append(
ProbeExpressionParser<string>.DumpObject(
ProbeExpressionParser<string>.GetFieldValueForDump(fieldsArray[index], (object)this.Nested),
fieldsArray[index].FieldType,
fieldsArray[index].Name,
0));
index++;
var $dd_el_result =
{
var dumpValue = (object)this.Nested;

if ((index < fieldsArray.Length) && (index < 5))
return (dumpValue == null)
? "null"
: ProbeExpressionParser<string>.IsRedactedRuntimeValue(
dumpValue,
typeof(DebuggerExpressionLanguageTests.TestStruct.NestedObject))
? "{redacted}"
: {
fieldsArray = ProbeExpressionParser<string>
.GetSafeFieldsForDump(
dumpValue.GetType().GetFields(
BindingFlags.DeclaredOnly | BindingFlags.Instance | BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic))
.OrderBy(fieldInfo => fieldInfo.MetadataToken)
.ToArray();
fieldValues = new StringBuilder();
index = 0;
while (true)
{
return fieldValues.Append(", ");
}
}
else
{
if (index < fieldsArray.Length)
{
return fieldValues.Append(", ...");
}
if ((index < fieldsArray.Length) && (index < 5))
{
fieldValues.Append(
ProbeExpressionParser<string>.DumpObject(
ProbeExpressionParser<string>.GetFieldValueForDump(fieldsArray[index], (object)dumpValue),
fieldsArray[index].FieldType,
fieldsArray[index].Name,
0));
index++;

break;
}
}
if ((index < fieldsArray.Length) && (index < 5))
{
return fieldValues.Append(", ");
}
}
else
{
if (index < fieldsArray.Length)
{
return fieldValues.Append(", ...");
}

break;
}
}

return fieldValues.ToString();
};
return fieldValues.ToString();
};
};

return $dd_el_result;
}
Expand Down
Loading