From cc8941647be68ad3bdd1d940b94eb80ab0584d16 Mon Sep 17 00:00:00 2001 From: Amy Yu Date: Fri, 8 Jun 2018 16:16:23 -0700 Subject: [PATCH] Dump bytes with offset instead of rva Commit migrated from https://github.com/dotnet/coreclr/commit/b85874d6ac7c82e03434aee01ef9b32da64a3096 --- src/coreclr/src/tools/r2rdump/R2RDump.cs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/coreclr/src/tools/r2rdump/R2RDump.cs b/src/coreclr/src/tools/r2rdump/R2RDump.cs index 65d72be..6a5cc34 100644 --- a/src/coreclr/src/tools/r2rdump/R2RDump.cs +++ b/src/coreclr/src/tools/r2rdump/R2RDump.cs @@ -170,7 +170,7 @@ namespace R2RDump _writer.Write(method.GcInfo); if (_raw) { - DumpBytes(r2r, method.GcInfo.Offset, (uint)method.GcInfo.Size); + DumpBytes(r2r, method.GcInfo.Offset, (uint)method.GcInfo.Size, false); } } _writer.WriteLine(); @@ -212,9 +212,11 @@ namespace R2RDump /// /// Prints a formatted string containing a block of bytes from the relative virtual address and size /// - public void DumpBytes(R2RReader r2r, int rva, uint size) + public void DumpBytes(R2RReader r2r, int rva, uint size, bool convertToOffset = true) { - uint start = (uint)r2r.GetOffset(rva); + int start = rva; + if (convertToOffset) + start = r2r.GetOffset(rva); if (start > r2r.Image.Length || start + size > r2r.Image.Length) { throw new IndexOutOfRangeException(); -- 2.7.4