[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