virtual Function * disassembleFunctionAt(uint64_t address) {
return disassembleFunctionAt(address, "");
}
- virtual Function * disassembleFunctionAt(uint64_t address, const std::string& name) = 0;
+ virtual Function * disassembleFunctionAt(uint64_t address,
+ const std::string& name) = 0;
+
+ // TODO: Should use move semantics!
virtual std::vector<Instruction> getInstructions(const BasicBlock* block) = 0;
};
class Instruction {
public:
- Instruction(uint64_t address, const std::string& text, const std::vector<uint8_t>& bytes, const std::string& reference)
+ Instruction(uint64_t address, const std::string& text,
+ const std::vector<uint8_t>& bytes,
+ const std::string& reference)
: address(address), text(text), bytes(bytes), reference(reference) {}
uint64_t getAddress() const {return address;}
const std::string& getText() const {return text;}
LLVMDisassembler<ELFT>::~LLVMDisassembler() {}
template <typename ELFT>
-Function* LLVMDisassembler<ELFT>::disassembleFunctionAt(uint64_t address, const std::string& name) {
+Function* LLVMDisassembler<ELFT>::disassembleFunctionAt(uint64_t address,
+ const std::string& name) {
Function * function;
SectionRef text_section = getTextSection();
uint64_t base_address, size;