[COFF] Dump string table size for COFF file headers
authorReid Kleckner <rnk@google.com>
Wed, 6 May 2020 22:36:18 +0000 (15:36 -0700)
committerReid Kleckner <rnk@google.com>
Wed, 6 May 2020 22:48:36 +0000 (15:48 -0700)
I couldn't find this info in any other dumper, so it might as well be
here.

lld/test/COFF/hello32.test
lld/test/COFF/largeaddressaware.test
llvm/include/llvm/Object/COFF.h
llvm/test/tools/llvm-readobj/COFF/bigobj.test
llvm/test/tools/llvm-readobj/COFF/file-headers.test
llvm/tools/llvm-readobj/COFFDumper.cpp

index 61418d3..02bdf2c 100644 (file)
@@ -14,6 +14,7 @@ HEADER-NEXT:   SectionCount: 4
 HEADER-NEXT:   TimeDateStamp: 
 HEADER-NEXT:   PointerToSymbolTable: 0x0
 HEADER-NEXT:   SymbolCount: 0
+HEADER-NEXT:   StringTableSize: 0
 HEADER-NEXT:   OptionalHeaderSize: 224
 HEADER-NEXT:   Characteristics [ (0x102)
 HEADER-NEXT:     IMAGE_FILE_32BIT_MACHINE (0x100)
index ddd3713..50f703a 100644 (file)
@@ -12,6 +12,7 @@ HEADER-NEXT:   SectionCount: 4
 HEADER-NEXT:   TimeDateStamp: 
 HEADER-NEXT:   PointerToSymbolTable: 0x0
 HEADER-NEXT:   SymbolCount: 0
+HEADER-NEXT:   StringTableSize: 0
 HEADER-NEXT:   OptionalHeaderSize: 224
 HEADER-NEXT:   Characteristics [ (0x122)
 HEADER-NEXT:     IMAGE_FILE_32BIT_MACHINE (0x100)
index 3d0afa1..2302178 100644 (file)
@@ -878,6 +878,8 @@ public:
     return getRawNumberOfSymbols();
   }
 
+  uint32_t getStringTableSize() const { return StringTableSize; }
+
   const coff_load_configuration32 *getLoadConfig32() const {
     assert(!is64());
     return reinterpret_cast<const coff_load_configuration32 *>(LoadConfig);
index 1097214..36d1baa 100644 (file)
@@ -10,6 +10,7 @@ CHECK-NEXT:   SectionCount: 3
 CHECK-NEXT:   TimeDateStamp: 1970-01-01 00:00:00 (0x0)
 CHECK-NEXT:   PointerToSymbolTable: 0xB0
 CHECK-NEXT:   SymbolCount: 8
+CHECK-NEXT:   StringTableSize: 4
 CHECK-NEXT:   OptionalHeaderSize: 0
 CHECK-NEXT:   Characteristics [ (0x0)
 CHECK-NEXT:   ]
index 77efe01..a8771ea 100644 (file)
@@ -12,6 +12,7 @@
 # ARM-NEXT:  TimeDateStamp: 1970-01-01 00:00:00 (0x0)
 # ARM-NEXT:  PointerToSymbolTable: 0x0
 # ARM-NEXT:  SymbolCount: 0
+# ARM-NEXT:  StringTableSize: 0
 # ARM-NEXT:  OptionalHeaderSize: 0
 # ARM-NEXT:  Characteristics [ (0x0)
 # ARM-NEXT:  ]
@@ -39,6 +40,7 @@ symbols:
 # ARM64-NEXT:  TimeDateStamp: 1970-01-01 00:00:00 (0x0)
 # ARM64-NEXT:  PointerToSymbolTable: 0x0
 # ARM64-NEXT:  SymbolCount: 0
+# ARM64-NEXT:  StringTableSize: 0
 # ARM64-NEXT:  OptionalHeaderSize: 0
 # ARM64-NEXT:  Characteristics [ (0x0)
 # ARM64-NEXT:  ]
@@ -66,6 +68,7 @@ symbols:
 # I386-NEXT:  TimeDateStamp: 1970-01-01 00:00:00 (0x0)
 # I386-NEXT:  PointerToSymbolTable: 0x0
 # I386-NEXT:  SymbolCount: 0
+# I386-NEXT:  StringTableSize: 0
 # I386-NEXT:  OptionalHeaderSize: 0
 # I386-NEXT:  Characteristics [ (0x0)
 # I386-NEXT:  ]
@@ -93,6 +96,7 @@ symbols:
 # X86-64-NEXT:  TimeDateStamp: 1970-01-01 00:00:00 (0x0)
 # X86-64-NEXT:  PointerToSymbolTable: 0x0
 # X86-64-NEXT:  SymbolCount: 0
+# X86-64-NEXT:  StringTableSize: 0
 # X86-64-NEXT:  OptionalHeaderSize: 0
 # X86-64-NEXT:  Characteristics [ (0x0)
 # X86-64-NEXT:  ]
@@ -120,6 +124,7 @@ symbols:
 # I386-CUSTOM-HEADER-NEXT:  TimeDateStamp: 1970-01-01 00:00:00 (0x0)
 # I386-CUSTOM-HEADER-NEXT:  PointerToSymbolTable: 0x0
 # I386-CUSTOM-HEADER-NEXT:  SymbolCount: 0
+# I386-CUSTOM-HEADER-NEXT:  StringTableSize: 0
 # I386-CUSTOM-HEADER-NEXT:  OptionalHeaderSize: 224
 # I386-CUSTOM-HEADER-NEXT:  Characteristics [ (0x102)
 # I386-CUSTOM-HEADER-NEXT:    IMAGE_FILE_32BIT_MACHINE (0x100)
@@ -297,6 +302,7 @@ symbols:         []
 # UNKNOWN-NEXT:  TimeDateStamp: 1970-01-01 00:00:00 (0x0)
 # UNKNOWN-NEXT:  PointerToSymbolTable: 0x0
 # UNKNOWN-NEXT:  SymbolCount: 0
+# UNKNOWN-NEXT:  StringTableSize: 0
 # UNKNOWN-NEXT:  OptionalHeaderSize: 0
 # UNKNOWN-NEXT:  Characteristics [ (0x0)
 # UNKNOWN-NEXT:  ]
index 08031ae..af19a16 100644 (file)
@@ -629,6 +629,7 @@ void COFFDumper::printFileHeaders() {
     W.printHex   ("TimeDateStamp", FormattedTime, Obj->getTimeDateStamp());
     W.printHex   ("PointerToSymbolTable", Obj->getPointerToSymbolTable());
     W.printNumber("SymbolCount", Obj->getNumberOfSymbols());
+    W.printNumber("StringTableSize", Obj->getStringTableSize());
     W.printNumber("OptionalHeaderSize", Obj->getSizeOfOptionalHeader());
     W.printFlags ("Characteristics", Obj->getCharacteristics(),
                     makeArrayRef(ImageFileCharacteristics));