Exemple #1
0
        public override string ToString(DbgStackFrameFormatOptions options)
        {
            var output = new StringBuilderTextColorOutput();

            Format(output, options);
            return(output.ToString());
        }
Exemple #2
0
 public override void Format(ITextColorWriter writer, DbgStackFrameFormatOptions options)
 {
     if (writer == null)
     {
         throw new ArgumentNullException(nameof(writer));
     }
     engineStackFrame.Format(writer, options);
 }
Exemple #3
0
        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);
        }
Exemple #4
0
        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();
            }
        }
Exemple #5
0
 /// <summary>
 /// Formats the stack frame
 /// </summary>
 /// <param name="writer">Writer</param>
 /// <param name="options">Options</param>
 public abstract void Format(ITextColorWriter writer, DbgStackFrameFormatOptions options);
Exemple #6
0
 public override void Format(ITextColorWriter writer, DbgStackFrameFormatOptions options) =>
 engine.DebuggerThread.Invoke(() => Format_CorDebug(writer, options));
Exemple #7
0
 /// <summary>
 /// ToString()
 /// </summary>
 /// <param name="options">Options</param>
 /// <returns></returns>
 public abstract string ToString(DbgStackFrameFormatOptions options);
Exemple #8
0
 public override void Format(ITextColorWriter writer, DbgStackFrameFormatOptions options)
 {
     writer.Write(BoxedTextColor.Punctuation, "[");
     writer.Write(BoxedTextColor.Text, name);
     writer.Write(BoxedTextColor.Punctuation, "]");
 }