コード例 #1
0
        void WriteToken(DmdMemberInfo member)
        {
            if (!Tokens)
            {
                return;
            }
            var primitiveFormatter = new CSharpPrimitiveValueFormatter(output, GetValueFormatterOptions() & ~ValueFormatterOptions.Decimal, cultureInfo);
            var tokenString        = primitiveFormatter.ToFormattedUInt32((uint)member.MetadataToken);

            OutputWrite(CommentBegin + tokenString + CommentEnd, BoxedTextColor.Comment);
        }
コード例 #2
0
        void WriteOffset(DbgStackFrame frame)
        {
            if (!ShowIP)
            {
                return;
            }
            WriteSpace();
            OutputWrite("(", BoxedTextColor.Punctuation);
            OutputWrite("IL", BoxedTextColor.Text);
            OutputWrite("=", BoxedTextColor.Operator);
            var primitiveFormatter = new CSharpPrimitiveValueFormatter(output, GetValueFormatterOptions() & ~ValueFormatterOptions.Decimal, cultureInfo);

            if (frame.FunctionOffset <= ushort.MaxValue)
            {
                primitiveFormatter.FormatUInt16((ushort)frame.FunctionOffset);
            }
            else
            {
                primitiveFormatter.FormatUInt32(frame.FunctionOffset);
            }

            if (frame.Location is IDbgDotNetCodeLocation loc)
            {
                var addr = loc.NativeAddress;
                if (addr.Address != 0)
                {
                    WriteCommaSpace();
                    OutputWrite("Native", BoxedTextColor.Text);
                    OutputWrite("=", BoxedTextColor.Operator);
                    if (frame.Runtime.Process.PointerSize == 4)
                    {
                        primitiveFormatter.FormatUInt32((uint)addr.Address);
                    }
                    else
                    {
                        primitiveFormatter.FormatUInt64(addr.Address);
                    }
                    long offs = (long)addr.Offset;
                    if (offs < 0)
                    {
                        offs = -offs;
                        OutputWrite("-", BoxedTextColor.Operator);
                    }
                    else
                    {
                        OutputWrite("+", BoxedTextColor.Operator);
                    }
                    primitiveFormatter.FormatFewDigits((ulong)offs);
                }
            }
            OutputWrite(")", BoxedTextColor.Punctuation);
        }