summaryrefslogtreecommitdiff
path: root/include/llvm/Object
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2010-11-27 13:52:53 +0000
committerDaniel Dunbar <daniel@zuster.org>2010-11-27 13:52:53 +0000
commit2208b58b83392b2a3558e556c7447b13c3aea857 (patch)
tree163b3d8177447a47d2f2193a44fb90a51e6c1b13 /include/llvm/Object
parentf2e2a5ff04e13720cec0c130c1d88d81d0ae6007 (diff)
downloadllvm-2208b58b83392b2a3558e556c7447b13c3aea857.tar.gz
llvm-2208b58b83392b2a3558e556c7447b13c3aea857.tar.bz2
llvm-2208b58b83392b2a3558e556c7447b13c3aea857.tar.xz
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
Diffstat (limited to 'include/llvm/Object')
-rw-r--r--include/llvm/Object/MachOFormat.h19
-rw-r--r--include/llvm/Object/MachOObject.h11
2 files changed, 30 insertions, 0 deletions
diff --git a/include/llvm/Object/MachOFormat.h b/include/llvm/Object/MachOFormat.h
index 0a2cceccb8..28bb40fba9 100644
--- a/include/llvm/Object/MachOFormat.h
+++ b/include/llvm/Object/MachOFormat.h
@@ -251,6 +251,25 @@ namespace macho {
};
/// @}
+ /// @name Symbol Table Entries
+ /// @{
+
+ struct SymbolTableEntry {
+ uint32_t StringIndex;
+ uint8_t Type;
+ uint8_t SectionIndex;
+ uint16_t Flags;
+ uint32_t Value;
+ };
+ struct Symbol64TableEntry {
+ uint32_t StringIndex;
+ uint8_t Type;
+ uint8_t SectionIndex;
+ uint16_t Flags;
+ uint64_t Value;
+ };
+
+ /// @}
/// @name Indirect Symbol Table
/// @{
diff --git a/include/llvm/Object/MachOObject.h b/include/llvm/Object/MachOObject.h
index 836e5491d2..6c0a1d0cad 100644
--- a/include/llvm/Object/MachOObject.h
+++ b/include/llvm/Object/MachOObject.h
@@ -111,6 +111,11 @@ public:
return StringTable;
}
+ StringRef getStringAtIndex(unsigned Index) const {
+ size_t End = getStringTableData().find('\0', Index);
+ return getStringTableData().slice(Index, End);
+ }
+
void RegisterStringTable(macho::SymtabLoadCommand &SLC);
/// @}
@@ -157,6 +162,12 @@ public:
void ReadRelocationEntry(
uint64_t RelocationTableOffset, unsigned Index,
InMemoryStruct<macho::RelocationEntry> &Res) const;
+ void ReadSymbolTableEntry(
+ uint64_t SymbolTableOffset, unsigned Index,
+ InMemoryStruct<macho::SymbolTableEntry> &Res) const;
+ void ReadSymbol64TableEntry(
+ uint64_t SymbolTableOffset, unsigned Index,
+ InMemoryStruct<macho::Symbol64TableEntry> &Res) const;
/// @}
};