#include #include "mainwindow.h" #include "apitrace.h" #include "apitracecall.h" #include "os_string.hpp" #include "os_process.hpp" #include #include #include #include Q_DECLARE_METATYPE(QList); Q_DECLARE_METATYPE(QVector); Q_DECLARE_METATYPE(Qt::CaseSensitivity); Q_DECLARE_METATYPE(ApiTrace::SearchResult); Q_DECLARE_METATYPE(ApiTrace::SearchRequest); Q_DECLARE_METATYPE(ImageHash); static void usage(void) { qWarning("usage: qapitrace [options] [TRACE] [CALLNO]\n" "Valid options include:\n" " -h, --help Print this help message\n" " --remote-target HOST Replay trace on remote target HOST\n"); } int main(int argc, char **argv) { QApplication app(argc, argv); qRegisterMetaType >(); qRegisterMetaType >(); qRegisterMetaType(); qRegisterMetaType(); qRegisterMetaType(); qRegisterMetaType(); qRegisterMetaType(); #ifndef Q_OS_WIN os::String currentProcess = os::getProcessName(); currentProcess.trimFilename(); QString path = qgetenv("PATH"); path = QLatin1String(currentProcess.str()) + QLatin1String(":") + path; qputenv("PATH", path.toLatin1()); #endif QStringList args = app.arguments(); QString remoteTarget; int i = 1; while (i < args.count()) { QString arg = args[i]; if (arg[0] != QLatin1Char('-')) { break; } ++i; if (arg == QLatin1String("--")) { break; } else if (arg == QLatin1String("--remote-target")) { if (i == args.count()) { qWarning("Option --remote-target requires an argument.\n"); exit(1); } remoteTarget = args[i]; ++i; } else if (arg == QLatin1String("-h") || arg == QLatin1String("--help")) { usage(); exit(0); } else { usage(); exit(1); } } MainWindow window; window.show(); if (i < args.count()) { QString fileName = args[i++]; int callNum = -1; if (i < args.count()) { callNum = args[i++].toInt(); } window.loadTrace(fileName, callNum); } if (remoteTarget.length()) { window.setRemoteTarget(remoteTarget); } app.exec(); }