[llvm] [llvm-objdump] print out xcoff file header and load section header for xcoff object file with option private-headers (PR #96350)

zhijian lin via llvm-commits llvm-commits at lists.llvm.org
Thu Aug 1 10:52:46 PDT 2024


================
@@ -30,10 +32,131 @@ using namespace llvm::support;
 
 namespace {
 class XCOFFDumper : public objdump::Dumper {
+  const XCOFFObjectFile &Obj;
+  unsigned Width;
 public:
-  XCOFFDumper(const object::XCOFFObjectFile &O) : Dumper(O) {}
-  void printPrivateHeaders() override {}
+  XCOFFDumper(const object::XCOFFObjectFile &O) : Dumper(O), Obj(O) {}
+  void printPrivateHeaders() override;
+  void printFileHeader();
+  void printAuxiliaryHeader(){};
+  void printLoaderSectionHeader();
+  FormattedString formatName(StringRef Name);
+  void printHex(StringRef Name, uint64_t Value);
+  void printNumber(StringRef Name, uint64_t Value);
+  void printStrHex(StringRef Name, StringRef Str, uint64_t Value);
+  void setWidth(unsigned W) {Width =W;};
 };
+
+void XCOFFDumper::printPrivateHeaders() {
+  printFileHeader();
+  printAuxiliaryHeader();
+  printLoaderSectionHeader();
----------------
diggerlin wrote:

yes, in the we are going to display loader section content in llvm-objdump --private-header for xcoff object file.

In the https://llvm.org/docs/CommandGuide/llvm-objdump.html , there is 
**-p, --private-headers[ΒΆ](https://llvm.org/docs/CommandGuide/llvm-objdump.html#cmdoption-llvm-objdump-p)
Display format-specific file headers.**

for example:
https://github.com/llvm/llvm-project/blob/main/llvm/tools/llvm-objdump/ELFDump.cpp#L437
and 
https://github.com/llvm/llvm-project/blob/main/llvm/tools/llvm-objdump/COFFDump.cpp#L811

I think we maybe need to allow the option `--private-header` to accept "--private-header=*" in other patch. @jh7370 , @chenzheng1030 

https://github.com/llvm/llvm-project/pull/96350


More information about the llvm-commits mailing list