]> git.siccegge.de Git - frida/frida.git/blob - src/disassembler/Disassembler.hxx
669dd82076b5f3627fe8cd9a2a1394b51849b5ee
[frida/frida.git] / src / disassembler / Disassembler.hxx
1 #ifndef INCLUDE__Disassembler_hxx
2 #define INCLUDE__Disassembler_hxx
3
4 #include <string>
5 #include <functional>
6 #include <vector>
7
8 #include "qt.hxx"
9 #include "Instruction.hxx"
10
11 class Function;
12 class BasicBlock;
13 class InformationManager;
14
15 class Disassembler : public QObject {
16 #ifndef SWIG
17 Q_OBJECT
18 #endif
19 public:
20 Disassembler() {}
21 virtual ~Disassembler() {}
22
23 virtual void getSymbols() = 0;
24 virtual uint64_t entryAddress() = 0;
25
26 #ifndef SWIG
27 public slots:
28 #endif
29 virtual void start() = 0;
30 virtual Function * disassembleFunctionAt(uint64_t address) {
31 return disassembleFunctionAt(address, "");
32 }
33 virtual Function * disassembleFunctionAt(uint64_t address,
34 const std::string& name) = 0;
35
36 // TODO: Should use move semantics!
37 virtual std::vector<Instruction> getInstructions(const BasicBlock* block) = 0;
38 };
39
40 #endif