summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2010-11-27 13:46:11 +0000
committerDaniel Dunbar <daniel@zuster.org>2010-11-27 13:46:11 +0000
commitf2e2a5ff04e13720cec0c130c1d88d81d0ae6007 (patch)
treed8a06360956446e828600dd653fd69aa5ecdddc4 /include
parent90e3e3a429e75a7d3671afcc30ed376b6186fd58 (diff)
downloadllvm-f2e2a5ff04e13720cec0c130c1d88d81d0ae6007.tar.gz
llvm-f2e2a5ff04e13720cec0c130c1d88d81d0ae6007.tar.bz2
llvm-f2e2a5ff04e13720cec0c130c1d88d81d0ae6007.tar.xz
macho-dump: Add support for dumping string table data.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120217 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r--include/llvm/Object/MachOObject.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/include/llvm/Object/MachOObject.h b/include/llvm/Object/MachOObject.h
index 53c7abf34a..836e5491d2 100644
--- a/include/llvm/Object/MachOObject.h
+++ b/include/llvm/Object/MachOObject.h
@@ -13,6 +13,7 @@
#include <string>
#include "llvm/ADT/InMemoryStruct.h"
#include "llvm/ADT/OwningPtr.h"
+#include "llvm/ADT/StringRef.h"
#include "llvm/Object/MachOFormat.h"
namespace llvm {
@@ -59,6 +60,8 @@ private:
bool Is64Bit;
/// Whether the object is swapped endianness from the host.
bool IsSwappedEndian;
+ /// Whether the string table has been registered.
+ bool HasStringTable;
/// The cached information on the load commands.
LoadCommandInfo *LoadCommands;
@@ -68,6 +71,9 @@ private:
macho::Header Header;
macho::Header64Ext Header64Ext;
+ /// Cache string table information.
+ StringRef StringTable;
+
private:
MachOObject(MemoryBuffer *Buffer, bool IsLittleEndian, bool Is64Bit);
@@ -97,6 +103,17 @@ public:
}
/// @}
+ /// @name String Table Data
+ /// @{
+
+ StringRef getStringTableData() const {
+ assert(HasStringTable && "String table has not been registered!");
+ return StringTable;
+ }
+
+ void RegisterStringTable(macho::SymtabLoadCommand &SLC);
+
+ /// @}
/// @name Object Header Access
/// @{