Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[llvm-readobj] Impl GNU style program headers print
readelf -lW Differential Revision: http://reviews.llvm.org/D18372 llvm-svn: 264415
- Loading branch information
Hemant Kulkarni
committed
Mar 25, 2016
1 parent
0902821
commit 966b3ac
Showing
4 changed files
with
304 additions
and
20 deletions.
There are no files selected for viewing
Binary file not shown.
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,78 @@ | ||
#Source : | ||
#__thread int a = 1; | ||
#__thread int b; | ||
# | ||
#int main () { | ||
# b = 2; | ||
# throw (a + b) ; | ||
# return 0; | ||
#} | ||
# compiled as clang++ source.cpp | ||
# and clang++ -m32 source.cpp | ||
|
||
RUN: llvm-readobj -program-headers %p/Inputs/phdrs-elf.exe-i386 --elf-output-style=GNU \ | ||
RUN: | FileCheck %s -check-prefix ELF32 | ||
RUN: llvm-readobj -program-headers %p/Inputs/phdrs-elf.exe-x86_64 \ | ||
RUN: --elf-output-style=GNU | FileCheck %s -check-prefix ELF64 | ||
|
||
ELF32: Elf file type is EXEC (Executable file) | ||
ELF32-NEXT: Entry point 0x8048460 | ||
ELF32-NEXT: There are 10 program headers, starting at offset 52 | ||
|
||
ELF32: Program Headers: | ||
ELF32-NEXT: Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align | ||
ELF32-NEXT: PHDR 0x000034 0x08048034 0x08048034 0x00140 0x00140 R E 0x4 | ||
ELF32-NEXT: INTERP 0x000174 0x08048174 0x08048174 0x00013 0x00013 R 0x1 | ||
ELF32-NEXT: [Requesting program interpreter: /lib/ld-linux.so.2] | ||
ELF32-NEXT: LOAD 0x000000 0x08048000 0x08048000 0x006d0 0x006d0 R E 0x1000 | ||
ELF32-NEXT: LOAD 0x000ef0 0x08049ef0 0x08049ef0 0x00128 0x00140 RW 0x1000 | ||
ELF32-NEXT: DYNAMIC 0x000f08 0x08049f08 0x08049f08 0x000e8 0x000e8 RW 0x4 | ||
ELF32-NEXT: NOTE 0x000188 0x08048188 0x08048188 0x00044 0x00044 R 0x4 | ||
ELF32-NEXT: TLS 0x000ef0 0x08049ef0 0x08049ef0 0x00004 0x00008 R 0x4 | ||
ELF32-NEXT: GNU_EH_FRAME 0x000640 0x08048640 0x08048640 0x0001c 0x0001c R 0x4 | ||
ELF32-NEXT: GNU_STACK 0x000000 0x00000000 0x00000000 0x00000 0x00000 RW 0x4 | ||
ELF32-NEXT: GNU_RELRO 0x000ef0 0x08049ef0 0x08049ef0 0x00110 0x00110 R 0x1 | ||
|
||
ELF32: Section to Segment mapping: | ||
ELF32-NEXT: Segment Sections... | ||
ELF32-NEXT: 00 | ||
ELF32-NEXT: 01 .interp | ||
ELF32-NEXT: 02 .interp .note.ABI-tag .note.gnu.build-id .hash .gnu.hash .dynsym .dynstr .gnu.version .gnu.version_r .rel.dyn .rel.plt .init .plt .text .fini .rodata .eh_frame_hdr .eh_frame | ||
ELF32-NEXT: 03 .tdata .ctors .dtors .jcr .dynamic .got .got.plt .data .bss | ||
ELF32-NEXT: 04 .dynamic | ||
ELF32-NEXT: 05 .note.ABI-tag .note.gnu.build-id | ||
ELF32-NEXT: 06 .tdata .tbss | ||
ELF32-NEXT: 07 .eh_frame_hdr | ||
ELF32-NEXT: 08 | ||
ELF32-NEXT: 09 .tdata .ctors .dtors .jcr .dynamic .got | ||
|
||
ELF64: Elf file type is EXEC (Executable file) | ||
ELF64-NEXT: Entry point 0x400610 | ||
ELF64-NEXT: There are 10 program headers, starting at offset 64 | ||
|
||
ELF64: Program Headers: | ||
ELF64-NEXT: Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align | ||
ELF64-NEXT: PHDR 0x000040 0x0000000000400040 0x0000000000400040 0x000230 0x000230 R E 0x8 | ||
ELF64-NEXT: INTERP 0x000270 0x0000000000400270 0x0000000000400270 0x00001c 0x00001c R 0x1 | ||
ELF64-NEXT: [Requesting program interpreter: /lib64/ld-linux-x86-64.so.2] | ||
ELF64-NEXT: LOAD 0x000000 0x0000000000400000 0x0000000000400000 0x000924 0x000924 R E 0x200000 | ||
ELF64-NEXT: LOAD 0x000db4 0x0000000000600db4 0x0000000000600db4 0x000274 0x0002a4 RW 0x200000 | ||
ELF64-NEXT: DYNAMIC 0x000dd0 0x0000000000600dd0 0x0000000000600dd0 0x000210 0x000210 RW 0x8 | ||
ELF64-NEXT: NOTE 0x00028c 0x000000000040028c 0x000000000040028c 0x000044 0x000044 R 0x4 | ||
ELF64-NEXT: TLS 0x000db4 0x0000000000600db4 0x0000000000600db4 0x000004 0x000008 R 0x4 | ||
ELF64-NEXT: GNU_EH_FRAME 0x00083c 0x000000000040083c 0x000000000040083c 0x00002c 0x00002c R 0x4 | ||
ELF64-NEXT: GNU_STACK 0x000000 0x0000000000000000 0x0000000000000000 0x000000 0x000000 RW 0x8 | ||
ELF64-NEXT: GNU_RELRO 0x000db4 0x0000000000600db4 0x0000000000600db4 0x00024c 0x00024c R 0x1 | ||
|
||
ELF64: Section to Segment mapping: | ||
ELF64-NEXT: Segment Sections... | ||
ELF64-NEXT: 00 | ||
ELF64-NEXT: 01 .interp | ||
ELF64-NEXT: 02 .interp .note.ABI-tag .note.gnu.build-id .hash .gnu.hash .dynsym .dynstr .gnu.version .gnu.version_r .rela.dyn .rela.plt .init .plt .text .fini .rodata .eh_frame_hdr .eh_frame | ||
ELF64-NEXT: 03 .tdata .init_array .fini_array .jcr .dynamic .got .got.plt .data .bss | ||
ELF64-NEXT: 04 .dynamic | ||
ELF64-NEXT: 05 .note.ABI-tag .note.gnu.build-id | ||
ELF64-NEXT: 06 .tdata .tbss | ||
ELF64-NEXT: 07 .eh_frame_hdr | ||
ELF64-NEXT: 08 | ||
ELF64-NEXT: 09 .tdata .init_array .fini_array .jcr .dynamic .got |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters