macho-dump: Add support for dumping symbol table entries.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120218 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Daniel Dunbar
2010-11-27 13:52:53 +00:00
parent f2e2a5ff04
commit 2208b58b83
4 changed files with 101 additions and 1 deletions

View File

@@ -308,3 +308,31 @@ void MachOObject::ReadRelocationEntry(uint64_t RelocationTableOffset,
Index * sizeof(macho::RelocationEntry));
ReadInMemoryStruct(*this, Buffer->getBuffer(), Offset, Res);
}
template<>
void SwapStruct(macho::SymbolTableEntry &Value) {
SwapValue(Value.StringIndex);
SwapValue(Value.Flags);
SwapValue(Value.Value);
}
void MachOObject::ReadSymbolTableEntry(uint64_t SymbolTableOffset,
unsigned Index,
InMemoryStruct<macho::SymbolTableEntry> &Res) const {
uint64_t Offset = (SymbolTableOffset +
Index * sizeof(macho::SymbolTableEntry));
ReadInMemoryStruct(*this, Buffer->getBuffer(), Offset, Res);
}
template<>
void SwapStruct(macho::Symbol64TableEntry &Value) {
SwapValue(Value.StringIndex);
SwapValue(Value.Flags);
SwapValue(Value.Value);
}
void MachOObject::ReadSymbol64TableEntry(uint64_t SymbolTableOffset,
unsigned Index,
InMemoryStruct<macho::Symbol64TableEntry> &Res) const {
uint64_t Offset = (SymbolTableOffset +
Index * sizeof(macho::Symbol64TableEntry));
ReadInMemoryStruct(*this, Buffer->getBuffer(), Offset, Res);
}