Print uint64_t -debug text correctly on 32-bit hosts
authorTim Northover <t.p.northover@gmail.com>
Sun, 19 May 2013 09:55:06 +0000 (09:55 +0000)
committerTim Northover <t.p.northover@gmail.com>
Sun, 19 May 2013 09:55:06 +0000 (09:55 +0000)
On 32-bit hosts %p can print garbage when given a uint64_t, we should
use %llx instead. This only affects the output of the debugging text
produced by lli.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182209 91177308-0d34-0410-b5e6-96231b3b80d8

tools/lli/lli.cpp

index ac7db20aed8cf4139d8dadf3f529027e219bc12f..031f945abaebc5a75ab06302965f83d8667811a5 100644 (file)
@@ -254,7 +254,7 @@ void layoutRemoteTargetMemory(RemoteTarget *T, RecordingMemoryManager *JMM) {
     EE->mapSectionAddress(const_cast<void*>(Offsets[i].first), Addr);
 
     DEBUG(dbgs() << "  Mapping local: " << Offsets[i].first
-                 << " to remote: " << format("%p", Addr) << "\n");
+                 << " to remote: 0x" << format("%llx", Addr) << "\n");
 
   }
 
@@ -269,12 +269,12 @@ void layoutRemoteTargetMemory(RemoteTarget *T, RecordingMemoryManager *JMM) {
       T->loadCode(Addr, Offsets[i].first, Sizes[i]);
 
       DEBUG(dbgs() << "  loading code: " << Offsets[i].first
-            << " to remote: " << format("%p", Addr) << "\n");
+            << " to remote: 0x" << format("%llx", Addr) << "\n");
     } else {
       T->loadData(Addr, Offsets[i].first, Sizes[i]);
 
       DEBUG(dbgs() << "  loading data: " << Offsets[i].first
-            << " to remote: " << format("%p", Addr) << "\n");
+            << " to remote: 0x" << format("%llx", Addr) << "\n");
     }
 
   }
@@ -483,8 +483,8 @@ int main(int argc, char **argv, char * const *envp) {
     // FIXME: argv and envp handling.
     uint64_t Entry = (uint64_t)EE->getPointerToFunction(EntryFn);
 
-    DEBUG(dbgs() << "Executing '" << EntryFn->getName() << "' at "
-                 << format("%p", Entry) << "\n");
+    DEBUG(dbgs() << "Executing '" << EntryFn->getName() << "' at 0x"
+                 << format("%llx", Entry) << "\n");
 
     if (Target.executeCode(Entry, Result))
       errs() << "ERROR: " << Target.getErrorMsg() << "\n";