159 lines
		
	
	
		
			5.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			159 lines
		
	
	
		
			5.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| ## 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-NEXT: {{^}}  5 .debug_abbrev 00000000 0000000000000000 0000000000000000 DEBUG{{$}}
 | |
| # WHITESPACE-NEXT: {{^}}  6 .debug_info   00000000 0000000000000000 0000000000000000 DATA, DEBUG{{$}}
 | |
| 
 | |
| # 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 {{$}}
 | |
| # WHITESPACE-NO-LMA-NEXT: {{^}}  5 .debug_abbrev 00000000 0000000000000000 DEBUG{{$}}
 | |
| # WHITESPACE-NO-LMA-NEXT: {{^}}  6 .debug_info   00000000 0000000000000000 DATA, DEBUG{{$}}
 | |
| 
 | |
| --- !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
 | |
|   - Name:  .debug_abbrev
 | |
|     Type:  SHT_PROGBITS
 | |
|   - Name:  .debug_info
 | |
|     Type:  SHT_PROGBITS
 | |
|     Flags: [ SHF_WRITE, SHF_ALLOC ]
 | |
|  
 | |
| ## Check that --section-headers and --headers are aliases for -h.
 | |
| # RUN: llvm-objdump --section-headers --show-lma %t-whitespace.o \
 | |
| # RUN:   | FileCheck %s --check-prefix=WHITESPACE --strict-whitespace
 | |
| # RUN: llvm-objdump --headers --show-lma %t-whitespace.o \
 | |
| # RUN:   | FileCheck %s --check-prefix=WHITESPACE --strict-whitespace
 | |
| 
 | |
| ## 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 -D BITS=32 -o %t-32bit.o
 | |
| # RUN: yaml2obj %s --docnum=4 -D BITS=64 -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:   ELFCLASS[[BITS]]
 | |
|   Data:    ELFDATA2LSB
 | |
|   Type:    ET_EXEC
 | |
|   Machine: EM_386
 | |
| Sections:
 | |
|   - Name:    .foo
 | |
|     Type:    SHT_PROGBITS
 | |
|     Flags:   [SHF_ALLOC, SHF_EXECINSTR]
 | |
|     Address: 0x400
 |