From 476f2435f57fb1c12735bb958f6a6af8849eab2c Mon Sep 17 00:00:00 2001 From: Lang Hames Date: Mon, 25 Aug 2014 22:19:14 +0000 Subject: [PATCH] [MCJIT] Dump section memory both before and after relocations are applied. Also switch section memory dump format from 8 to 16 columns. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@216413 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp b/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp index 8ac2217e90d..d5c683c579e 100644 --- a/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp +++ b/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp @@ -41,8 +41,10 @@ void RuntimeDyldImpl::registerEHFrames() {} void RuntimeDyldImpl::deregisterEHFrames() {} -static void dumpSectionMemory(const SectionEntry &S) { - dbgs() << "----- Contents of section " << S.Name << " -----"; +static void dumpSectionMemory(const SectionEntry &S, StringRef State) { + dbgs() << "----- Contents of section " << S.Name << " " << State << " -----"; + + const unsigned ColsPerRow = 16; uint8_t *DataAddr = S.Address; uint64_t LoadAddr = S.LoadAddress; @@ -51,13 +53,13 @@ static void dumpSectionMemory(const SectionEntry &S) { unsigned BytesRemaining = S.Size; if (StartPadding) { - dbgs() << "\n" << format("0x%08x", LoadAddr & ~7) << ":"; + dbgs() << "\n" << format("0x%08x", LoadAddr & ~(ColsPerRow - 1)) << ":"; while (StartPadding--) dbgs() << " "; } while (BytesRemaining > 0) { - if ((LoadAddr & 7) == 0) + if ((LoadAddr & (ColsPerRow - 1)) == 0) dbgs() << "\n" << format("0x%08x", LoadAddr) << ":"; dbgs() << " " << format("%02x", *DataAddr); @@ -86,8 +88,9 @@ void RuntimeDyldImpl::resolveRelocations() { uint64_t Addr = Sections[i].LoadAddress; DEBUG(dbgs() << "Resolving relocations Section #" << i << "\t" << format("0x%x", Addr) << "\n"); - DEBUG(dumpSectionMemory(Sections[i])); + DEBUG(dumpSectionMemory(Sections[i], "before relocations")); resolveRelocationList(Relocations[i], Addr); + DEBUG(dumpSectionMemory(Sections[i], "after relocations")); Relocations.erase(i); } }