X-Git-Url: https://git.siccegge.de//index.cgi?p=frida%2Ffrida.git;a=blobdiff_plain;f=src%2Fmain.cxx;h=9e25c20597b8f9df0ae5cdb81b9e063d3ae6341d;hp=d284d4fcb0a3e685d797877182465505f9bb25a7;hb=82b40a653fb3a1d349e32679340f276d5c61d269;hpb=914bc03c4ed200f495288d8483f4b9909368b4fd diff --git a/src/main.cxx b/src/main.cxx index d284d4f..9e25c20 100644 --- a/src/main.cxx +++ b/src/main.cxx @@ -11,12 +11,15 @@ #include #endif #include +#include +#include #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" #include "Config.hxx" @@ -32,16 +35,43 @@ int main(int argc, char** argv) #endif QApplication::setApplicationName("frida"); - QApplication::setApplicationVersion("0.0"); + QApplication::setApplicationVersion("0.2+"); QApplication::addLibraryPath(CONFIG_LIBDIR "/frida/plugins/Interpreter"); + qRegisterMetaType >("QVector"); #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");