macdependency/MachO/symboltablecommand.h
Mike Lischke 972fcb3094 Overhaul of the application to avoid it crashing on macOS Sierra.
- Applied all recommended XCode (8) settings.
- Removed boost and replaced that code by standard functions.
- Implemented name mangling via abi::__cxa_demangle instead of running an external process to use c++filt.
- Enabled C++11. Min deployment target is now OSX 10.7.
- Some code clean up (e.g. formatting, std namespace).
2016-11-19 16:23:39 +01:00

33 lines
998 B
C++

#ifndef SYMBOLTABLECOMMAND_H
#define SYMBOLTABLECOMMAND_H
#include "loadcommand.h"
class SymbolTableEntry;
class EXPORT SymbolTableCommand : public LoadCommand
{
private:
typedef std::list<const SymbolTableEntry*> SymbolTableEntries;
typedef SymbolTableEntries::iterator SymbolTableEntriesIterator;
public:
typedef SymbolTableEntries::const_iterator SymbolTableEntriesConstIterator;
SymbolTableCommand(MachOHeader* header);
virtual ~SymbolTableCommand();
virtual unsigned int getSize() const;
SymbolTableEntriesConstIterator getSymbolTableEntryBegin() const;
SymbolTableEntriesConstIterator getSymbolTableEntryEnd() const;
//const std::vector<const SymbolTableEntry*>* getSymbolTableEntries() const;
private:
symtab_command command;
mutable struct nlist* symbols32;
mutable struct nlist_64* symbols64;
mutable char* stringTable;
mutable SymbolTableEntries symbolTableEntries;
void readSymbolTable() const;
};
#endif // SYMBOLTABLECOMMAND_H