]> git.siccegge.de Git - frida/frida.git/blobdiff - src/Binary.hxx
Remove old leftovers
[frida/frida.git] / src / Binary.hxx
index 31d7485b8fd6ea8d6706f0764131cf3b2c94a8a1..1a865783f850633d6fbb4e8c80e0542168ddd3c1 100644 (file)
@@ -1,16 +1,36 @@
-#include "include.hxx"
+#ifndef INCLUDE__Binary_hxx
+#define INCLUDE__Binary_hxx
+
+#include "include_llvm.hxx"
+#include "Section.hxx"
 
 #include <string>
+#include <vector>
+#include <functional>
 
 using llvm::OwningPtr;
 
 class Binary {
+public:
+    Binary(const std::string& filename);
+
+    void disassemble();
+
+    void disassemble_functions();
+
+    void disassemble_cfg();
+
+    std::vector<std::string> getSymbols();
+
+    std::vector<std::string> getFunctions();
+    void for_each_instruction(const std::string& function, std::function<void (long, std::string, std::string)> callback);
+
 private:
     llvm::Triple triple;
     const llvm::Target * target;
     llvm::object::ObjectFile * o;
 
-    OwningPtr<llvm::object::Binary> binary;
+    llvm::object::Binary* binary;
     OwningPtr<const llvm::MCRegisterInfo> MRI;
     OwningPtr<const llvm::MCAsmInfo> AsmInfo;
     OwningPtr<llvm::MCModule> Mod;
@@ -23,12 +43,8 @@ private:
     OwningPtr<const llvm::MCInstrInfo> MII;
     OwningPtr<llvm::MCRelocationInfo> RelInfo;
     OwningPtr<llvm::MCSymbolizer> Symzer;
-public:
-    Binary(const std::string& filename);
 
-    void disassemble();
-
-    void disassemble_functions();
-
-    void disassemble_cfg();
+    std::map<std::string, llvm::object::SectionRef> sections;
+    std::map<std::string, llvm::object::SymbolRef> symbols;
 };
+#endif