================ @@ -130,19 +164,41 @@ bool ObjectFileXCOFF::MagicBytesMatch(DataBufferSP &data_sp, lldb::addr_t data_length) { lldb_private::DataExtractor data; data.SetData(data_sp, data_offset, data_length); + + // Need to set this as XCOFF is only compatible with Big Endian data.SetByteOrder(eByteOrderBig); lldb::offset_t offset = 0; uint16_t magic = data.GetU16(&offset); return XCOFFHeaderSizeFromMagic(magic) != 0; } -bool ObjectFileXCOFF::ParseHeader() { return false; } +bool ObjectFileXCOFF::ParseHeader() { + + bool retVal = false; + ModuleSP module_sp(GetModule()); + if (module_sp) { + // Only 64-bit is supported for now + if (m_binary->fileHeader64()->Magic == XCOFF::XCOFF64) + retVal = true; + } + + return retVal; +} ByteOrder ObjectFileXCOFF::GetByteOrder() const { return eByteOrderBig; } bool ObjectFileXCOFF::IsExecutable() const { return true; } -uint32_t ObjectFileXCOFF::GetAddressByteSize() const { return 8; } +uint32_t ObjectFileXCOFF::GetAddressByteSize() const { + + /* TODO: Need to handle 32-bit support, until then + * return 8 for 64-bit XCOFF::XCOFF64 */ ---------------- DavidSpickett wrote:
https://llvm.org/docs/CodingStandards.html#comment-formatting - use `//`. If you want a block just use multiple `//` lines. https://github.com/llvm/llvm-project/pull/116338 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits