mirror of
https://github.com/RPCS3/llvm.git
synced 2026-07-01 21:04:04 -04:00
[llvm-objdump] Adjust spacing and field width for --section-headers
Summary: - Expand the "Name" column past 13 characters when any of the section names are longer. Current behavior is a staggard output instead of a nice table if a single name is longer. - Only print the required number of hex chars for addresses (i.e. 8 characters for 32-bit, 16 characters for 64-bit) - Fix trailing spaces Reviewers: grimar, jhenderson, espindola Reviewed By: grimar Subscribers: emaste, sbc100, arichardson, aheejin, seiya, llvm-commits, MaskRay Tags: #llvm Differential Revision: https://reviews.llvm.org/D68730 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@374795 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -0,0 +1,155 @@
|
||||
## Test various details of llvm-objdump -h (--section-headers).
|
||||
|
||||
## Check leading and trailing whitespace for full lines.
|
||||
|
||||
# RUN: yaml2obj %s --docnum=1 -o %t-whitespace.o
|
||||
# RUN: llvm-objdump -h --show-lma %t-whitespace.o \
|
||||
# RUN: | FileCheck %s --check-prefix=WHITESPACE --strict-whitespace
|
||||
# RUN: llvm-objdump -h %t-whitespace.o \
|
||||
# RUN: | FileCheck %s --check-prefix=WHITESPACE-NO-LMA --strict-whitespace
|
||||
|
||||
# WHITESPACE: {{^}}Sections:{{$}}
|
||||
# WHITESPACE-NEXT: {{^}}Idx Name Size VMA LMA Type{{$}}
|
||||
# WHITESPACE-NEXT: {{^}} 0 00000000 0000000000000000 0000000000000000 {{$}}
|
||||
# WHITESPACE-NEXT: {{^}} 1 .text 00000000 0000000000000000 0000000000000000 TEXT{{$}}
|
||||
# WHITESPACE-NEXT: {{^}} 2 .data 00000000 0000000000000000 0000000000000000 DATA{{$}}
|
||||
# WHITESPACE-NEXT: {{^}} 3 .bss 00000000 0000000000000000 0000000000000000 BSS{{$}}
|
||||
# WHITESPACE-NEXT: {{^}} 4 .other 00000000 0000000000000000 0000000000000000 {{$}}
|
||||
|
||||
# WHITESPACE-NO-LMA: {{^}}Sections:{{$}}
|
||||
# WHITESPACE-NO-LMA-NEXT: {{^}}Idx Name Size VMA Type{{$}}
|
||||
# WHITESPACE-NO-LMA-NEXT: {{^}} 0 00000000 0000000000000000 {{$}}
|
||||
# WHITESPACE-NO-LMA-NEXT: {{^}} 1 .text 00000000 0000000000000000 TEXT{{$}}
|
||||
# WHITESPACE-NO-LMA-NEXT: {{^}} 2 .data 00000000 0000000000000000 DATA{{$}}
|
||||
# WHITESPACE-NO-LMA-NEXT: {{^}} 3 .bss 00000000 0000000000000000 BSS{{$}}
|
||||
# WHITESPACE-NO-LMA-NEXT: {{^}} 4 .other 00000000 0000000000000000 {{$}}
|
||||
|
||||
--- !ELF
|
||||
FileHeader:
|
||||
Class: ELFCLASS64
|
||||
Data: ELFDATA2LSB
|
||||
Type: ET_EXEC
|
||||
Machine: EM_X86_64
|
||||
Sections:
|
||||
- Name: .text
|
||||
Type: SHT_PROGBITS
|
||||
Flags: [SHF_ALLOC, SHF_EXECINSTR]
|
||||
- Name: .data
|
||||
Type: SHT_PROGBITS
|
||||
Flags: [SHF_ALLOC, SHF_WRITE]
|
||||
- Name: .bss
|
||||
Type: SHT_NOBITS
|
||||
Flags: [SHF_ALLOC, SHF_WRITE]
|
||||
- Name: .other
|
||||
Type: SHT_REL
|
||||
|
||||
## The name field automatically expands past the default 13 columns when a
|
||||
## section name is longer than that.
|
||||
## Note: check with and without --show-lma to make sure resizing happens in
|
||||
## both cases.
|
||||
|
||||
# RUN: yaml2obj %s --docnum=2 -o %t-name13chars.o
|
||||
# RUN: llvm-objdump -h --show-lma %t-name13chars.o \
|
||||
# RUN: | FileCheck %s --check-prefix=NAME-13 --strict-whitespace
|
||||
# RUN: llvm-objdump -h %t-name13chars.o \
|
||||
# RUN: | FileCheck %s --check-prefix=NAME-13 --strict-whitespace
|
||||
|
||||
# NAME-13: Sections:
|
||||
# NAME-13-NEXT: {{^}}Idx Name Size
|
||||
# NAME-13-NEXT: {{^}} 0 00000000
|
||||
# NAME-13-NEXT: {{^}} 1 .foo 00000000
|
||||
# NAME-13-NEXT: {{^}} 2 .thirteenchar 00000000
|
||||
# NAME-13-NEXT: {{^}} 3 .bar 00000000
|
||||
|
||||
## Including a section with a name of length 14 expands the width of the "Name"
|
||||
## column.
|
||||
# RUN: yaml2obj %s --docnum=3 -o %t-name14chars.o
|
||||
# RUN: llvm-objdump -h --show-lma %t-name14chars.o \
|
||||
# RUN: | FileCheck %s --check-prefix=NAME-14 --strict-whitespace
|
||||
# RUN: llvm-objdump -h %t-name14chars.o \
|
||||
# RUN: | FileCheck %s --check-prefix=NAME-14 --strict-whitespace
|
||||
|
||||
# NAME-14: Sections:
|
||||
# NAME-14-NEXT: {{^}}Idx Name Size
|
||||
# NAME-14-NEXT: {{^}} 0 00000000
|
||||
# NAME-14-NEXT: {{^}} 1 .foo 00000000
|
||||
# NAME-14-NEXT: {{^}} 2 .fourteenchars 00000000
|
||||
# NAME-14-NEXT: {{^}} 3 .bar 00000000
|
||||
|
||||
--- !ELF
|
||||
FileHeader:
|
||||
Class: ELFCLASS64
|
||||
Data: ELFDATA2LSB
|
||||
Type: ET_EXEC
|
||||
Machine: EM_X86_64
|
||||
Sections:
|
||||
- Name: .foo
|
||||
Type: SHT_PROGBITS
|
||||
- Name: .thirteenchar
|
||||
Type: SHT_PROGBITS
|
||||
- Name: .bar
|
||||
Type: SHT_PROGBITS
|
||||
|
||||
--- !ELF
|
||||
FileHeader:
|
||||
Class: ELFCLASS64
|
||||
Data: ELFDATA2LSB
|
||||
Type: ET_EXEC
|
||||
Machine: EM_X86_64
|
||||
Sections:
|
||||
- Name: .foo
|
||||
Type: SHT_PROGBITS
|
||||
- Name: .fourteenchars
|
||||
Type: SHT_PROGBITS
|
||||
- Name: .bar
|
||||
Type: SHT_PROGBITS
|
||||
|
||||
## Check that objdump -h only prints the necessary amount of bytes for
|
||||
## addresses.
|
||||
|
||||
# RUN: yaml2obj %s --docnum=4 -o %t-32bit.o
|
||||
# RUN: yaml2obj %s --docnum=5 -o %t-64bit.o
|
||||
|
||||
# RUN: llvm-objdump -h --show-lma %t-32bit.o \
|
||||
# RUN: | FileCheck %s --check-prefix=32 --strict-whitespace
|
||||
# 32: {{^}}Idx Name Size VMA LMA Type{{$}}
|
||||
# 32: {{^}} 1 .foo 00000000 00000400 00000400 TEXT{{$}}
|
||||
|
||||
# RUN: llvm-objdump -h %t-32bit.o \
|
||||
# RUN: | FileCheck %s --check-prefix=32-NO-LMA --strict-whitespace
|
||||
# 32-NO-LMA: {{^}}Idx Name Size VMA Type{{$}}
|
||||
# 32-NO-LMA: {{^}} 1 .foo 00000000 00000400 TEXT{{$}}
|
||||
|
||||
# RUN: llvm-objdump -h --show-lma %t-64bit.o \
|
||||
# RUN: | FileCheck %s --check-prefix=64 --strict-whitespace
|
||||
# 64: {{^}}Idx Name Size VMA LMA Type{{$}}
|
||||
# 64: {{^}} 1 .foo 00000000 0000000000000400 0000000000000400 TEXT{{$}}
|
||||
|
||||
# RUN: llvm-objdump -h %t-64bit.o \
|
||||
# RUN: | FileCheck %s --check-prefix=64-NO-LMA --strict-whitespace
|
||||
# 64-NO-LMA: {{^}}Idx Name Size VMA Type{{$}}
|
||||
# 64-NO-LMA: {{^}} 1 .foo 00000000 0000000000000400 TEXT{{$}}
|
||||
|
||||
--- !ELF
|
||||
FileHeader:
|
||||
Class: ELFCLASS32
|
||||
Data: ELFDATA2LSB
|
||||
Type: ET_EXEC
|
||||
Machine: EM_386
|
||||
Sections:
|
||||
- Name: .foo
|
||||
Type: SHT_PROGBITS
|
||||
Flags: [SHF_ALLOC, SHF_EXECINSTR]
|
||||
Address: 0x400
|
||||
|
||||
--- !ELF
|
||||
FileHeader:
|
||||
Class: ELFCLASS64
|
||||
Data: ELFDATA2LSB
|
||||
Type: ET_EXEC
|
||||
Machine: EM_X86_64
|
||||
Sections:
|
||||
- Name: .foo
|
||||
Type: SHT_PROGBITS
|
||||
Flags: [SHF_ALLOC, SHF_EXECINSTR]
|
||||
Address: 0x400
|
||||
@@ -1,14 +1,14 @@
|
||||
# RUN: llvm-objdump -h %p/Inputs/trivial.obj.wasm | FileCheck %s
|
||||
|
||||
# CHECK: Sections:
|
||||
# CHECK-NEXT: Idx Name Size VMA Type
|
||||
# CHECK-NEXT: 0 TYPE 00000011 0000000000000000
|
||||
# CHECK-NEXT: 1 IMPORT 0000005d 0000000000000000
|
||||
# CHECK-NEXT: 2 FUNCTION 00000003 0000000000000000
|
||||
# CHECK-NEXT: 3 CODE 00000024 0000000000000000 TEXT
|
||||
# CHECK-NEXT: 4 DATA 0000001c 0000000000000000 DATA
|
||||
# CHECK-NEXT: 5 linking 0000006d 0000000000000000
|
||||
# CHECK-NEXT: 6 reloc.CODE 0000000f 0000000000000000
|
||||
# CHECK-NEXT: Idx Name Size VMA Type
|
||||
# CHECK-NEXT: 0 TYPE 00000011 00000000
|
||||
# CHECK-NEXT: 1 IMPORT 0000005d 00000000
|
||||
# CHECK-NEXT: 2 FUNCTION 00000003 00000000
|
||||
# CHECK-NEXT: 3 CODE 00000024 00000000 TEXT
|
||||
# CHECK-NEXT: 4 DATA 0000001c 00000000 DATA
|
||||
# CHECK-NEXT: 5 linking 0000006d 00000000
|
||||
# CHECK-NEXT: 6 reloc.CODE 0000000f 00000000
|
||||
|
||||
# RUN: llvm-objdump -p %p/Inputs/trivial.obj.wasm | FileCheck %s -check-prefix CHECK-HEADER
|
||||
|
||||
|
||||
@@ -12,12 +12,12 @@
|
||||
|
||||
# CHECK: xcoff-section-headers.o: file format aixcoff-rs6000
|
||||
# CHECK: Sections:
|
||||
# CHECK: Idx Name Size VMA Type
|
||||
# CHECK: 1 .text 00000080 0000000000000000 TEXT
|
||||
# CHECK: 2 .data 00000024 0000000000000080 DATA
|
||||
# CHECK: 3 .bss 00000004 00000000000000a4 BSS
|
||||
# CHECK: 4 .tdata 00000008 0000000000000000 DATA
|
||||
# CHECK: 5 .tbss 00000004 0000000000000008 BSS
|
||||
# CHECK: Idx Name Size VMA Type
|
||||
# CHECK: 1 .text 00000080 00000000 TEXT
|
||||
# CHECK: 2 .data 00000024 00000080 DATA
|
||||
# CHECK: 3 .bss 00000004 000000a4 BSS
|
||||
# CHECK: 4 .tdata 00000008 00000000 DATA
|
||||
# CHECK: 5 .tbss 00000004 00000008 BSS
|
||||
|
||||
# xcoff-section-headers.o Compiled with IBM XL C/C++ for AIX, V16.1.0
|
||||
# test.c:
|
||||
@@ -32,10 +32,10 @@
|
||||
|
||||
# LONG: xcoff-long-sec-names.o: file format aixcoff-rs6000
|
||||
# LONG: Sections:
|
||||
# LONG: Idx Name Size VMA Type
|
||||
# LONG: 1 .dwarnge 00000004 0000000000000000
|
||||
# LONG: 2 .dwpbnms 00000004 0000000000000000
|
||||
# LONG: 3 .dwpbtyp 00000004 0000000000000000
|
||||
# LONG: Idx Name Size VMA Type
|
||||
# LONG: 1 .dwarnge 00000004 00000000
|
||||
# LONG: 2 .dwpbnms 00000004 00000000
|
||||
# LONG: 3 .dwpbtyp 00000004 00000000
|
||||
|
||||
# xcoff-long-sec-names.o was generated by assembling the following .s file:
|
||||
# .dwsect 0x30000 # .dwpbnms section
|
||||
|
||||
Reference in New Issue
Block a user