[llvm-readobj] Set correct offset when dumping hex section output.

Differential Revision: https://reviews.llvm.org/D56369

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@351356 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/test/tools/llvm-readobj/hexdump.test b/test/tools/llvm-readobj/hexdump.test
new file mode 100644
index 0000000..cadb722
--- /dev/null
+++ b/test/tools/llvm-readobj/hexdump.test
@@ -0,0 +1,5 @@
+// Check dumping of the hexadecimal bytes of a section.
+RUN: llvm-readobj -x .text %p/../../Object/Inputs/hello-world.elf-x86-64 | FileCheck %s
+
+CHECK: Hex dump of section '.text':
+CHECK-NEXT: {{^}}0x00400460
diff --git a/tools/llvm-readobj/ObjDumper.cpp b/tools/llvm-readobj/ObjDumper.cpp
index a725140..81c9a2b 100644
--- a/tools/llvm-readobj/ObjDumper.cpp
+++ b/tools/llvm-readobj/ObjDumper.cpp
@@ -117,7 +117,8 @@
     uint8_t i;
     uint8_t k;
 
-    W.startLine() << format_hex(SecPtr - SecContent, 10);
+    W.startLine() << format_hex(Section.getAddress() + (SecPtr - SecContent),
+                                10);
     W.startLine() << ' ';
     for (i = 0; TmpSecPtr < SecEnd && i < 4; ++i) {
       for (k = 0; TmpSecPtr < SecEnd && k < 4; k++, TmpSecPtr++) {