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); }
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); }