public override string ToString(DbgStackFrameFormatOptions options) { var output = new StringBuilderTextColorOutput(); Format(output, options); return(output.ToString()); }
public override void Format(ITextColorWriter writer, DbgStackFrameFormatOptions options) { if (writer == null) { throw new ArgumentNullException(nameof(writer)); } engineStackFrame.Format(writer, options); }
static TypeFormatterFlags GetFlags(DbgStackFrameFormatOptions options) { var flags = TypeFormatterFlags.ShowArrayValueSizes; if ((options & DbgStackFrameFormatOptions.ShowReturnTypes) != 0) { flags |= TypeFormatterFlags.ShowReturnTypes; } if ((options & DbgStackFrameFormatOptions.ShowParameterTypes) != 0) { flags |= TypeFormatterFlags.ShowParameterTypes; } if ((options & DbgStackFrameFormatOptions.ShowParameterNames) != 0) { flags |= TypeFormatterFlags.ShowParameterNames; } if ((options & DbgStackFrameFormatOptions.ShowParameterValues) != 0) { flags |= TypeFormatterFlags.ShowParameterValues; } if ((options & DbgStackFrameFormatOptions.ShowFunctionOffset) != 0) { flags |= TypeFormatterFlags.ShowIP; } if ((options & DbgStackFrameFormatOptions.ShowModuleNames) != 0) { flags |= TypeFormatterFlags.ShowModuleNames; } if ((options & DbgStackFrameFormatOptions.ShowDeclaringTypes) != 0) { flags |= TypeFormatterFlags.ShowDeclaringTypes; } if ((options & DbgStackFrameFormatOptions.ShowNamespaces) != 0) { flags |= TypeFormatterFlags.ShowNamespaces; } if ((options & DbgStackFrameFormatOptions.ShowIntrinsicTypeKeywords) != 0) { flags |= TypeFormatterFlags.ShowIntrinsicTypeKeywords; } if ((options & DbgStackFrameFormatOptions.ShowTokens) != 0) { flags |= TypeFormatterFlags.ShowTokens; } if ((options & DbgStackFrameFormatOptions.UseDecimal) != 0) { flags |= TypeFormatterFlags.UseDecimal; } if ((options & DbgStackFrameFormatOptions.DigitSeparators) != 0) { flags |= TypeFormatterFlags.DigitSeparators; } return(flags); }
void Format_CorDebug(ITextColorWriter writer, DbgStackFrameFormatOptions options) { if (Module.IsClosed) { return; } var output = engine.stackFrameData.TypeOutputTextColorWriter.Initialize(writer); try { var flags = GetFlags(options); Func <DnEval> getEval = null; Debug.Assert((options & DbgStackFrameFormatOptions.ShowParameterValues) == 0, "NYI"); new TypeFormatter(output, flags, getEval).Write(CorFrame); } finally { output.Clear(); } }
/// <summary> /// Formats the stack frame /// </summary> /// <param name="writer">Writer</param> /// <param name="options">Options</param> public abstract void Format(ITextColorWriter writer, DbgStackFrameFormatOptions options);
public override void Format(ITextColorWriter writer, DbgStackFrameFormatOptions options) => engine.DebuggerThread.Invoke(() => Format_CorDebug(writer, options));
/// <summary> /// ToString() /// </summary> /// <param name="options">Options</param> /// <returns></returns> public abstract string ToString(DbgStackFrameFormatOptions options);
public override void Format(ITextColorWriter writer, DbgStackFrameFormatOptions options) { writer.Write(BoxedTextColor.Punctuation, "["); writer.Write(BoxedTextColor.Text, name); writer.Write(BoxedTextColor.Punctuation, "]"); }