* ist sondern z.B. einfach nur Instruktionen oder ein Bootsektor oder
* foo
*/
-LLVMDisassembler::LLVMDisassembler(const std::string& filename)
- : Disassembler(filename)
+LLVMDisassembler::LLVMDisassembler(const std::string& filename,
+ InformationManager* manager)
+ : Disassembler(filename, manager)
, logger(log4cxx::Logger::getLogger("LLVMDisassembler"))
, triple("unknown-unknown-unknown")
+ , manager(manager)
{
LOG4CXX_DEBUG(logger, "Handling file" << filename);
auto result = createBinary(filename);
std::unique_ptr<MCObjectDisassembler> OD(
new MCObjectDisassembler(*o, *DisAsm, *MIA));
Mod.reset(OD->buildModule(false));
+}
+void LLVMDisassembler::start() {
readSymbols();
readSections();
disassemble();
}
}
LOG4CXX_DEBUG(logger, "Finished function " << function->getName());
+ manager->signal_new_function(function);
}
void LLVMDisassembler::disassemble() {