X-Git-Url: https://git.siccegge.de//index.cgi?p=frida%2Ffrida.git;a=blobdiff_plain;f=src%2Fmain.cxx;h=ebb85e87924d457a80c388a32a62f35a56b26fb6;hp=ec768919f111040e48e6e05f4875afd3760ee831;hb=ade1d271328d2153876eb208d10a4525c962951b;hpb=988726af7276c31122cd2e27adae87aa8b4049ad diff --git a/src/main.cxx b/src/main.cxx index ec76891..ebb85e8 100644 --- a/src/main.cxx +++ b/src/main.cxx @@ -1,9 +1,22 @@ -#include "include.hxx" +#include "include_llvm.hxx" #include #include -#include "Binary.hxx" +#include +#if QT_VERSION > QT_VERSION_CHECK(5, 2, 0) +#define ARGPARSE +#endif + +#ifdef ARGPARSE +#include +#endif +#include + +#include "log4cxx/logger.h" +#include "log4cxx/basicconfigurator.h" + +#include "gui/Mainwindow.hxx" using std::cout; using std::cin; @@ -11,13 +24,41 @@ using std::cerr; int main(int argc, char** argv) { + QApplication app(argc, argv); + + log4cxx::BasicConfigurator::configure(); + log4cxx::LoggerPtr _logger(log4cxx::Logger::getLogger("main")); + +#ifdef ARGPARSE + QCommandLineParser parser; +#endif + + QApplication::setApplicationName("frida"); +#ifdef ARGPARSE + parser.addHelpOption(); + parser.addVersionOption(); + parser.addPositionalArgument("filename", QCoreApplication::translate("main", "File to disassemble.")); + + + parser.process(app); +#endif + + LOG4CXX_DEBUG(_logger, "Initializing LLVM"); llvm::InitializeAllTargetInfos(); llvm::InitializeAllTargetMCs(); llvm::InitializeAllAsmParsers(); llvm::InitializeAllDisassemblers(); - Binary bin(argv[1]); - bin.disassemble(); + LOG4CXX_DEBUG(_logger, "Initializing Qt"); + + std::string filename = ""; +#ifdef ARGPARSE + if (! parser.positionalArguments().isEmpty()) { + filename = parser.positionalArguments().at(0).toStdString(); + } +#endif - bin.disassemble_functions(); + Mainwindow m(filename); + m.show(); + return app.exec(); }