public void PrintStackTrace(CommandExecutionContext context, IEnumerable<UnifiedStackFrame> stackTrace)
{
foreach (var frame in stackTrace)
{
if (frame.Type == UnifiedStackFrameType.Special)
{
context.WriteLine("{0,-10}", "Special");
continue;
}
if (String.IsNullOrEmpty(frame.SourceFileName))
{
context.WriteLine("{0,-10} {1,-20:x16} {2}!{3}+0x{4:x}",
frame.Type, frame.InstructionPointer,
frame.Module, frame.Method, frame.OffsetInMethod);
}
else
{
context.WriteLine("{0,-10} {1,-20:x16} {2}!{3} [{4}:{5},{6}]",
frame.Type, frame.InstructionPointer,
frame.Module, frame.Method, frame.SourceFileName,
frame.SourceLineNumber, frame.SourceColumnNumber);
}
}
}