llvm-readobj: print COFF delay-load import table

This patch adds another iterator to access the delay-load import table
and use it from llvm-readobj.

http://reviews.llvm.org/D5594



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@218933 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Rui Ueyama
2014-10-03 00:41:58 +00:00
parent 5c10a029ad
commit 820664686a
6 changed files with 190 additions and 33 deletions

View File

@@ -3,42 +3,62 @@ RUN: llvm-readobj --coff-imports %p/Inputs/imports.exe.coff-x86-64 | FileCheck -
X86: Import {
X86-NEXT: Name: KERNEL32.dll
X86-NEXT: ImportLookupTableRVA: 0x2070
X86-NEXT: ImportLookupTableRVA: 0x2108
X86-NEXT: ImportAddressTableRVA: 0x2000
X86-NEXT: Symbol: ExitProcess (337)
X86-NEXT: Symbol: GetProcAddress (669)
X86-NEXT: Symbol: FreeLibrary (414)
X86-NEXT: Symbol: GetLastError (592)
X86-NEXT: Symbol: RaiseException (1087)
X86-NEXT: Symbol: LoadLibraryExA (934)
X86-NEXT: }
X86-NEXT: Import {
X86-NEXT: Name: USER32.dll
X86-NEXT: ImportLookupTableRVA: 0x2078
X86-NEXT: ImportAddressTableRVA: 0x2008
X86-NEXT: ImportLookupTableRVA: 0x2124
X86-NEXT: ImportAddressTableRVA: 0x201C
X86-NEXT: Symbol: MessageBoxA (582)
X86-NEXT: }
X86-NEXT: Import {
X86-NEXT: Name: mydll.dll
X86-NEXT: ImportLookupTableRVA: 0x2080
X86-NEXT: ImportAddressTableRVA: 0x2010
X86-NEXT: ImportLookupTableRVA: 0x212C
X86-NEXT: ImportAddressTableRVA: 0x2024
X86-NEXT: Symbol: Func1 (0)
X86-NEXT: Symbol: Func2 (1)
X86-NEXT: Symbol: (3)
X86-NEXT: Symbol: Func1 (0)
X86-NEXT: }
X86-NEXT: DelayImport {
X86-NEXT: Name: lazyload.dll
X86-NEXT: Symbol: Func5 (0)
X86-NEXT: Symbol: Func4 (0)
X86-NEXT: }
X64: Import {
X64-NEXT: Name: KERNEL32.dll
X64-NEXT: ImportLookupTableRVA: 0x2090
X64-NEXT: ImportLookupTableRVA: 0x2170
X64-NEXT: ImportAddressTableRVA: 0x2000
X64-NEXT: Symbol: ExitProcess (343)
X64-NEXT: Symbol: GetProcAddress (676)
X64-NEXT: Symbol: FreeLibrary (420)
X64-NEXT: Symbol: GetLastError (598)
X64-NEXT: Symbol: RaiseException (1091)
X64-NEXT: Symbol: LoadLibraryExA (937)
X64-NEXT: }
X64-NEXT: Import {
X64-NEXT: Name: USER32.dll
X64-NEXT: ImportLookupTableRVA: 0x20A0
X64-NEXT: ImportAddressTableRVA: 0x2010
X64-NEXT: ImportLookupTableRVA: 0x21A8
X64-NEXT: ImportAddressTableRVA: 0x2038
X64-NEXT: Symbol: MessageBoxA (586)
X64-NEXT: }
X64-NEXT: Import {
X64-NEXT: Name: mydll.dll
X64-NEXT: ImportLookupTableRVA: 0x20B0
X64-NEXT: ImportAddressTableRVA: 0x2020
X64-NEXT: ImportLookupTableRVA: 0x21B8
X64-NEXT: ImportAddressTableRVA: 0x2048
X64-NEXT: Symbol: Func1 (0)
X64-NEXT: Symbol: Func2 (1)
X64-NEXT: Symbol: (3)
X64-NEXT: Symbol: Func1 (0)
X64-NEXT: }
X64-NEXT: DelayImport {
X64-NEXT: Name: lazyload.dll
X64-NEXT: Symbol: Func5 (0)
X64-NEXT: Symbol: Func4 (0)
X64-NEXT: }