]> git.siccegge.de Git - frida/frida.git/blobdiff - src/main.cxx
Actually set frida version
[frida/frida.git] / src / main.cxx
index 0c1ffe50a750e82b8f848b29db742cb8d91772ed..9e25c20597b8f9df0ae5cdb81b9e063d3ae6341d 100644 (file)
@@ -1,6 +1,5 @@
 #include "disassembler/llvm/include_llvm.hxx"
 
-#include <iostream>
 #include <climits>
 
 #include <QApplication>
 #include <QCommandLineParser>
 #endif
 #include <QTextEdit>
+#include <QMetaType>
+#include <QVector>
 
 #include "log4cxx/logger.h"
 #include "log4cxx/basicconfigurator.h"
 
 #include "gui/Mainwindow.hxx"
 #include "core/InformationManager.hxx"
+#include "core/Settings.hxx"
 #include "disassembler/llvm/LLVMDisassembler.hxx"
-
-using std::cout;
-using std::cin;
-using std::cerr;
+#include "Config.hxx"
 
 int main(int argc, char** argv)
 {
@@ -36,14 +35,43 @@ int main(int argc, char** argv)
 #endif
 
        QApplication::setApplicationName("frida");
+       QApplication::setApplicationVersion("0.2+");
+       QApplication::addLibraryPath(CONFIG_LIBDIR "/frida/plugins/Interpreter");
+       qRegisterMetaType<QVector<int> >("QVector<int>");
 #ifdef ARGPARSE
        parser.addHelpOption();
        parser.addVersionOption();
+
+       QCommandLineOption loglevelOption("loglevel", "Control verbosity of logging", "FATAL|ERROR|WARN|INFO|DEBUG|TRACE");
+       loglevelOption.setDefaultValue("INFO");
+       parser.addOption(loglevelOption);
+
        parser.addPositionalArgument("filename", QCoreApplication::translate("main", "File to disassemble."));
 
        parser.process(app);
 #endif
 
+       log4cxx::LevelPtr level = log4cxx::Level::getInfo();
+#ifdef ARGPARSE
+       if (parser.value(loglevelOption) != "") {
+               std::string levelstring = parser.value(loglevelOption).toStdString();
+               if (levelstring == "FATAL")
+                       level = log4cxx::Level::getFatal();
+               if (levelstring == "ERROR")
+                       level = log4cxx::Level::getError();
+               if (levelstring == "WARN")
+                       level = log4cxx::Level::getWarn();
+               if (levelstring == "INFO")
+                       level = log4cxx::Level::getInfo();
+               if (levelstring == "DEBUG")
+                       level = log4cxx::Level::getDebug();
+               if (levelstring == "TRACE")
+                       level = log4cxx::Level::getTrace();
+       }
+#endif
+       log4cxx::Logger::getRootLogger()->setLevel(level);
+
+       Settings settings;
        InformationManager iman;
 
        LOG4CXX_DEBUG(_logger, "Initializing LLVM");