macho-dump: Add support for dumping sections.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120215 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Daniel Dunbar
2010-11-27 13:33:15 +00:00
parent 4c55e0db0f
commit 2acadbddf6
4 changed files with 157 additions and 6 deletions

View File

@ -219,7 +219,38 @@ namespace macho {
};
/// @}
/// @name Section Data
/// @{
struct Section {
char Name[16];
char SegmentName[16];
uint32_t Address;
uint32_t Size;
uint32_t Offset;
uint32_t Align;
uint32_t RelocationTableOffset;
uint32_t NumRelocationTableEntries;
uint32_t Flags;
uint32_t Reserved1;
uint32_t Reserved2;
};
struct Section64 {
char Name[16];
char SegmentName[16];
uint64_t Address;
uint64_t Size;
uint32_t Offset;
uint32_t Align;
uint32_t RelocationTableOffset;
uint32_t NumRelocationTableEntries;
uint32_t Flags;
uint32_t Reserved1;
uint32_t Reserved2;
uint32_t Reserved3;
};
/// @}
/// @name Indirect Symbol Table
/// @{

View File

@ -129,6 +129,14 @@ public:
const macho::DysymtabLoadCommand &DLC,
unsigned Index,
InMemoryStruct<macho::IndirectSymbolTableEntry> &Res) const;
void ReadSection(
const LoadCommandInfo &LCI,
unsigned Index,
InMemoryStruct<macho::Section> &Res) const;
void ReadSection64(
const LoadCommandInfo &LCI,
unsigned Index,
InMemoryStruct<macho::Section64> &Res) const;
/// @}
};