in sdk/src/Core/Internal/Emitters/JsonSegmentMarshaller.cs [249:306]
private static void ExceptionDescriptorExporter(ExceptionDescriptor descriptor, JsonWriter writer)
{
writer.WriteObjectStart(); // exception
writer.WritePropertyName("id");
writer.Write(descriptor.Id);
writer.WritePropertyName("message");
writer.Write(descriptor.Message);
writer.WritePropertyName("type");
writer.Write(descriptor.Type);
writer.WritePropertyName("remote");
writer.Write(descriptor.Remote);
writer.WritePropertyName("stack");
writer.WriteArrayStart(); // stack
StackFrame[] frames = descriptor.Stack;
if (frames != null)
{
foreach (StackFrame frame in frames)
{
writer.WriteObjectStart(); // trace
writer.WritePropertyName("path");
writer.Write(frame.GetFileName());
writer.WritePropertyName("line");
writer.Write(frame.GetFileLineNumber());
writer.WritePropertyName("label");
MethodBase method = frame.GetMethod();
string label = method.Name;
if (method.ReflectedType != null)
{
label = method.ReflectedType.FullName + "." + label;
}
writer.Write(label);
writer.WriteObjectEnd(); // trace
}
}
writer.WriteArrayEnd(); // stack
if (descriptor.Truncated > 0)
{
writer.WritePropertyName("truncated");
writer.Write(descriptor.Truncated);
}
if (descriptor.Cause != null)
{
writer.WritePropertyName("cause");
writer.Write(descriptor.Cause);
}
writer.WriteObjectEnd(); // exception
}