summaryrefslogtreecommitdiff
path: root/test/tools/llvm-readobj
diff options
context:
space:
mode:
authorTimur Iskhodzhanov <timurrrr@google.com>2013-12-19 11:37:14 +0000
committerTimur Iskhodzhanov <timurrrr@google.com>2013-12-19 11:37:14 +0000
commite493a9976c6ff5aa7852c6c6f512b0ff60e3f5ce (patch)
tree795cdbcb5ca3290e70174af4a34c7b0d8a9dada0 /test/tools/llvm-readobj
parent7ec73b1145bb666a9f1048d044be44e03b6f40c5 (diff)
downloadllvm-e493a9976c6ff5aa7852c6c6f512b0ff60e3f5ce.tar.gz
llvm-e493a9976c6ff5aa7852c6c6f512b0ff60e3f5ce.tar.bz2
llvm-e493a9976c6ff5aa7852c6c6f512b0ff60e3f5ce.tar.xz
Teach the llvm-readobj COFF dumper to dump debug line tables from object files
Reviewed at http://llvm-reviews.chandlerc.com/D2425 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@197674 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/tools/llvm-readobj')
-rw-r--r--test/tools/llvm-readobj/Inputs/multifile-linetables.obj.coff-2012-i368bin0 -> 1631 bytes
-rw-r--r--test/tools/llvm-readobj/Inputs/multifile-linetables.obj.coff-2012-x86_64bin0 -> 1799 bytes
-rw-r--r--test/tools/llvm-readobj/Inputs/multifunction-linetables.obj.coff-2012-i368bin0 -> 2155 bytes
-rw-r--r--test/tools/llvm-readobj/Inputs/multifunction-linetables.obj.coff-2012-x86_64bin0 -> 2475 bytes
-rw-r--r--test/tools/llvm-readobj/codeview-linetables.test282
5 files changed, 282 insertions, 0 deletions
diff --git a/test/tools/llvm-readobj/Inputs/multifile-linetables.obj.coff-2012-i368 b/test/tools/llvm-readobj/Inputs/multifile-linetables.obj.coff-2012-i368
new file mode 100644
index 0000000000..1672d3a542
--- /dev/null
+++ b/test/tools/llvm-readobj/Inputs/multifile-linetables.obj.coff-2012-i368
Binary files differ
diff --git a/test/tools/llvm-readobj/Inputs/multifile-linetables.obj.coff-2012-x86_64 b/test/tools/llvm-readobj/Inputs/multifile-linetables.obj.coff-2012-x86_64
new file mode 100644
index 0000000000..30bfe79bc3
--- /dev/null
+++ b/test/tools/llvm-readobj/Inputs/multifile-linetables.obj.coff-2012-x86_64
Binary files differ
diff --git a/test/tools/llvm-readobj/Inputs/multifunction-linetables.obj.coff-2012-i368 b/test/tools/llvm-readobj/Inputs/multifunction-linetables.obj.coff-2012-i368
new file mode 100644
index 0000000000..a0196ff2d7
--- /dev/null
+++ b/test/tools/llvm-readobj/Inputs/multifunction-linetables.obj.coff-2012-i368
Binary files differ
diff --git a/test/tools/llvm-readobj/Inputs/multifunction-linetables.obj.coff-2012-x86_64 b/test/tools/llvm-readobj/Inputs/multifunction-linetables.obj.coff-2012-x86_64
new file mode 100644
index 0000000000..14f65ab2f6
--- /dev/null
+++ b/test/tools/llvm-readobj/Inputs/multifunction-linetables.obj.coff-2012-x86_64
Binary files differ
diff --git a/test/tools/llvm-readobj/codeview-linetables.test b/test/tools/llvm-readobj/codeview-linetables.test
new file mode 100644
index 0000000000..4854d7ac6a
--- /dev/null
+++ b/test/tools/llvm-readobj/codeview-linetables.test
@@ -0,0 +1,282 @@
+RUN: llvm-readobj -s -codeview-linetables %p/Inputs/multifunction-linetables.obj.coff-2012-i368 \
+RUN: | FileCheck %s -check-prefix MFUN32
+RUN: llvm-readobj -s -codeview-linetables %p/Inputs/multifunction-linetables.obj.coff-2012-x86_64 \
+RUN: | FileCheck %s -check-prefix MFUN64
+RUN: llvm-readobj -s -codeview-linetables %p/Inputs/multifile-linetables.obj.coff-2012-i368 \
+RUN: | FileCheck %s -check-prefix MFILE32
+RUN: llvm-readobj -s -codeview-linetables %p/Inputs/multifile-linetables.obj.coff-2012-x86_64 \
+RUN: | FileCheck %s -check-prefix MFILE64
+
+MFUN32: CodeViewLineTables [
+MFUN32-NEXT: Magic: 0x4
+MFUN32-NEXT: Subsection [
+MFUN32-NEXT: Type: 0xF1
+MFUN32-NEXT: PayloadSize: 0x52
+MFUN32: ]
+MFUN32-NEXT: Subsection [
+MFUN32-NEXT: Type: 0xF5
+MFUN32-NEXT: PayloadSize: 0x24
+MFUN32: ]
+MFUN32-NEXT: Subsection [
+MFUN32-NEXT: Type: 0xF1
+MFUN32-NEXT: PayloadSize: 0x4B
+MFUN32: ]
+MFUN32-NEXT: Subsection [
+MFUN32-NEXT: Type: 0xF2
+MFUN32-NEXT: PayloadSize: 0x30
+MFUN32: FunctionName: _x
+MFUN32-NEXT: ]
+MFUN32-NEXT: Subsection [
+MFUN32-NEXT: Type: 0xF5
+MFUN32-NEXT: PayloadSize: 0x24
+MFUN32: ]
+MFUN32-NEXT: Subsection [
+MFUN32-NEXT: Type: 0xF1
+MFUN32-NEXT: PayloadSize: 0x4B
+MFUN32: ]
+MFUN32-NEXT: Subsection [
+MFUN32-NEXT: Type: 0xF2
+MFUN32-NEXT: PayloadSize: 0x30
+MFUN32: FunctionName: _y
+MFUN32-NEXT: ]
+MFUN32-NEXT: Subsection [
+MFUN32-NEXT: Type: 0xF5
+MFUN32-NEXT: PayloadSize: 0x24
+MFUN32: ]
+MFUN32-NEXT: Subsection [
+MFUN32-NEXT: Type: 0xF1
+MFUN32-NEXT: PayloadSize: 0x4B
+MFUN32: ]
+MFUN32-NEXT: Subsection [
+MFUN32-NEXT: Type: 0xF2
+MFUN32-NEXT: PayloadSize: 0x40
+MFUN32: FunctionName: _f
+MFUN32-NEXT: ]
+MFUN32-NEXT: Subsection [
+MFUN32-NEXT: Type: 0xF4
+MFUN32-NEXT: PayloadSize: 0x18
+MFUN32: ]
+MFUN32-NEXT: Subsection [
+MFUN32-NEXT: Type: 0xF3
+MFUN32-NEXT: PayloadSize: 0x46
+MFUN32: ]
+MFUN32-NEXT: Subsection [
+MFUN32-NEXT: Type: 0xF1
+MFUN32-NEXT: PayloadSize: 0x8
+MFUN32: ]
+MFUN32-NEXT: FunctionLineTable [
+MFUN32-NEXT: FunctionName: _x
+MFUN32-NEXT: CodeSize: 0xA
+MFUN32-NEXT: FilenameSegment [
+MFUN32-NEXT: Filename: d:\source.c
+MFUN32-NEXT: +0x0: 3
+MFUN32-NEXT: +0x3: 4
+MFUN32-NEXT: +0x8: 5
+MFUN32-NEXT: ]
+MFUN32-NEXT: ]
+MFUN32-NEXT: FunctionLineTable [
+MFUN32-NEXT: FunctionName: _y
+MFUN32-NEXT: CodeSize: 0xA
+MFUN32-NEXT: FilenameSegment [
+MFUN32-NEXT: Filename: d:\source.c
+MFUN32-NEXT: +0x0: 7
+MFUN32-NEXT: +0x3: 8
+MFUN32-NEXT: +0x8: 9
+MFUN32-NEXT: ]
+MFUN32-NEXT: ]
+MFUN32-NEXT: FunctionLineTable [
+MFUN32-NEXT: FunctionName: _f
+MFUN32-NEXT: CodeSize: 0x14
+MFUN32-NEXT: FilenameSegment [
+MFUN32-NEXT: Filename: d:\source.c
+MFUN32-NEXT: +0x0: 11
+MFUN32-NEXT: +0x3: 12
+MFUN32-NEXT: +0x8: 13
+MFUN32-NEXT: +0xD: 14
+MFUN32-NEXT: +0x12: 15
+MFUN32-NEXT: ]
+MFUN32-NEXT: ]
+MFUN32-NEXT: ]
+
+MFUN64: CodeViewLineTables [
+MFUN64-NEXT: Magic: 0x4
+MFUN64-NEXT: Subsection [
+MFUN64-NEXT: Type: 0xF1
+MFUN64-NEXT: PayloadSize: 0x52
+MFUN64: ]
+MFUN64-NEXT: Subsection [
+MFUN64-NEXT: Type: 0xF1
+MFUN64-NEXT: PayloadSize: 0x4B
+MFUN64: ]
+MFUN64-NEXT: Subsection [
+MFUN64-NEXT: Type: 0xF2
+MFUN64-NEXT: PayloadSize: 0x30
+MFUN64: FunctionName: x
+MFUN64-NEXT: ]
+MFUN64-NEXT: Subsection [
+MFUN64-NEXT: Type: 0xF1
+MFUN64-NEXT: PayloadSize: 0x4B
+MFUN64: ]
+MFUN64-NEXT: Subsection [
+MFUN64-NEXT: Type: 0xF2
+MFUN64-NEXT: PayloadSize: 0x30
+MFUN64: FunctionName: y
+MFUN64-NEXT: ]
+MFUN64-NEXT: Subsection [
+MFUN64-NEXT: Type: 0xF1
+MFUN64-NEXT: PayloadSize: 0x4B
+MFUN64: ]
+MFUN64-NEXT: Subsection [
+MFUN64-NEXT: Type: 0xF2
+MFUN64-NEXT: PayloadSize: 0x40
+MFUN64: FunctionName: f
+MFUN64-NEXT: ]
+MFUN64-NEXT: Subsection [
+MFUN64-NEXT: Type: 0xF4
+MFUN64-NEXT: PayloadSize: 0x18
+MFUN64: ]
+MFUN64-NEXT: Subsection [
+MFUN64-NEXT: Type: 0xF3
+MFUN64-NEXT: PayloadSize: 0xD
+MFUN64: ]
+MFUN64-NEXT: Subsection [
+MFUN64-NEXT: Type: 0xF1
+MFUN64-NEXT: PayloadSize: 0x8
+MFUN64: ]
+MFUN64-NEXT: FunctionLineTable [
+MFUN64-NEXT: FunctionName: x
+MFUN64-NEXT: CodeSize: 0xE
+MFUN64-NEXT: FilenameSegment [
+MFUN64-NEXT: Filename: d:\source.c
+MFUN64-NEXT: +0x0: 3
+MFUN64-NEXT: +0x4: 4
+MFUN64-NEXT: +0x9: 5
+MFUN64-NEXT: ]
+MFUN64-NEXT: ]
+MFUN64-NEXT: FunctionLineTable [
+MFUN64-NEXT: FunctionName: y
+MFUN64-NEXT: CodeSize: 0xE
+MFUN64-NEXT: FilenameSegment [
+MFUN64-NEXT: Filename: d:\source.c
+MFUN64-NEXT: +0x0: 7
+MFUN64-NEXT: +0x4: 8
+MFUN64-NEXT: +0x9: 9
+MFUN64-NEXT: ]
+MFUN64-NEXT: ]
+MFUN64-NEXT: FunctionLineTable [
+MFUN64-NEXT: FunctionName: f
+MFUN64-NEXT: CodeSize: 0x18
+MFUN64-NEXT: FilenameSegment [
+MFUN64-NEXT: Filename: d:\source.c
+MFUN64-NEXT: +0x0: 11
+MFUN64-NEXT: +0x4: 12
+MFUN64-NEXT: +0x9: 13
+MFUN64-NEXT: +0xE: 14
+MFUN64-NEXT: +0x13: 15
+MFUN64-NEXT: ]
+MFUN64-NEXT: ]
+MFUN64-NEXT: ]
+
+MFILE32: CodeViewLineTables [
+MFILE32-NEXT: Magic: 0x4
+MFILE32-NEXT: Subsection [
+MFILE32-NEXT: Type: 0xF1
+MFILE32-NEXT: PayloadSize: 0x51
+MFILE32: ]
+MFILE32-NEXT: Subsection [
+MFILE32-NEXT: Type: 0xF5
+MFILE32-NEXT: PayloadSize: 0x24
+MFILE32: ]
+MFILE32-NEXT: Subsection [
+MFILE32-NEXT: Type: 0xF1
+MFILE32-NEXT: PayloadSize: 0x4B
+MFILE32: ]
+MFILE32-NEXT: Subsection [
+MFILE32-NEXT: Type: 0xF2
+MFILE32-NEXT: PayloadSize: 0x64
+MFILE32: FunctionName: _f
+MFILE32-NEXT: ]
+MFILE32-NEXT: Subsection [
+MFILE32-NEXT: Type: 0xF4
+MFILE32-NEXT: PayloadSize: 0x28
+MFILE32: ]
+MFILE32-NEXT: Subsection [
+MFILE32-NEXT: Type: 0xF3
+MFILE32-NEXT: PayloadSize: 0x57
+MFILE32: ]
+MFILE32-NEXT: Subsection [
+MFILE32-NEXT: Type: 0xF1
+MFILE32-NEXT: PayloadSize: 0x8
+MFILE32: ]
+MFILE32-NEXT: FunctionLineTable [
+MFILE32-NEXT: FunctionName: _f
+MFILE32-NEXT: CodeSize: 0x14
+MFILE32-NEXT: FilenameSegment [
+MFILE32-NEXT: Filename: d:\input.c
+MFILE32-NEXT: +0x0: 3
+MFILE32-NEXT: ]
+MFILE32-NEXT: FilenameSegment [
+MFILE32-NEXT: Filename: d:\one.c
+MFILE32-NEXT: +0x3: 1
+MFILE32-NEXT: ]
+MFILE32-NEXT: FilenameSegment [
+MFILE32-NEXT: Filename: d:\two.c
+MFILE32-NEXT: +0x8: 2
+MFILE32-NEXT: ]
+MFILE32-NEXT: FilenameSegment [
+MFILE32-NEXT: Filename: d:\one.c
+MFILE32-NEXT: +0xD: 7
+MFILE32-NEXT: +0x12: 8
+MFILE32-NEXT: ]
+MFILE32-NEXT: ]
+MFILE32-NEXT: ]
+
+MFILE64: CodeViewLineTables [
+MFILE64-NEXT: Magic: 0x4
+MFILE64-NEXT: Subsection [
+MFILE64-NEXT: Type: 0xF1
+MFILE64-NEXT: PayloadSize: 0x51
+MFILE64: ]
+MFILE64-NEXT: Subsection [
+MFILE64-NEXT: Type: 0xF1
+MFILE64-NEXT: PayloadSize: 0x4B
+MFILE64: ]
+MFILE64-NEXT: Subsection [
+MFILE64-NEXT: Type: 0xF2
+MFILE64-NEXT: PayloadSize: 0x64
+MFILE64: FunctionName: f
+MFILE64-NEXT: ]
+MFILE64-NEXT: Subsection [
+MFILE64-NEXT: Type: 0xF4
+MFILE64-NEXT: PayloadSize: 0x28
+MFILE64: ]
+MFILE64-NEXT: Subsection [
+MFILE64-NEXT: Type: 0xF3
+MFILE64-NEXT: PayloadSize: 0x1E
+MFILE64: ]
+MFILE64-NEXT: Subsection [
+MFILE64-NEXT: Type: 0xF1
+MFILE64-NEXT: PayloadSize: 0x8
+MFILE64: ]
+MFILE64-NEXT: FunctionLineTable [
+MFILE64-NEXT: FunctionName: f
+MFILE64-NEXT: CodeSize: 0x18
+MFILE64-NEXT: FilenameSegment [
+MFILE64-NEXT: Filename: d:\input.c
+MFILE64-NEXT: +0x0: 3
+MFILE64-NEXT: ]
+MFILE64-NEXT: FilenameSegment [
+MFILE64-NEXT: Filename: d:\one.c
+MFILE64-NEXT: +0x4: 1
+MFILE64-NEXT: ]
+MFILE64-NEXT: FilenameSegment [
+MFILE64-NEXT: Filename: d:\two.c
+MFILE64-NEXT: +0x9: 2
+MFILE64-NEXT: ]
+MFILE64-NEXT: FilenameSegment [
+MFILE64-NEXT: Filename: d:\one.c
+MFILE64-NEXT: +0xE: 7
+MFILE64-NEXT: +0x13: 8
+MFILE64-NEXT: ]
+MFILE64-NEXT: ]
+MFILE64-NEXT: ]