3 #include "mainwindow.h"
6 #include "apitracecall.h"
8 #include "os_string.hpp"
9 #include "os_process.hpp"
11 #include <QApplication>
16 Q_DECLARE_METATYPE(QList<ApiTraceFrame*>);
17 Q_DECLARE_METATYPE(QVector<ApiTraceCall*>);
18 Q_DECLARE_METATYPE(Qt::CaseSensitivity);
19 Q_DECLARE_METATYPE(ApiTrace::SearchResult);
20 Q_DECLARE_METATYPE(ApiTrace::SearchRequest);
21 Q_DECLARE_METATYPE(QList<QImage>);
23 static void usage(void)
25 qWarning("usage: qapitrace [options] [TRACE] [CALLNO]\n"
26 "Valid options include:\n"
27 " -h, --help Print this help message\n"
28 " --remote-target HOST Replay trace on remote target HOST\n");
31 int main(int argc, char **argv)
33 QApplication::setGraphicsSystem("raster");
34 QApplication app(argc, argv);
36 qRegisterMetaType<QList<ApiTraceFrame*> >();
37 qRegisterMetaType<QVector<ApiTraceCall*> >();
38 qRegisterMetaType<ApiTraceState>();
39 qRegisterMetaType<Qt::CaseSensitivity>();
40 qRegisterMetaType<ApiTrace::SearchResult>();
41 qRegisterMetaType<ApiTrace::SearchRequest>();
42 qRegisterMetaType<QList<QImage> >();
45 os::String currentProcess = os::getProcessName();
46 currentProcess.trimFilename();
47 QString path = qgetenv("PATH");
48 path = QLatin1String(currentProcess.str()) + QLatin1String(":") + path;
49 qputenv("PATH", path.toLatin1());
52 QStringList args = app.arguments();
56 while (i < args.count()) {
57 QString arg = args[i];
58 if (arg[0] != QLatin1Char('-')) {
62 if (arg == QLatin1String("--")) {
64 } else if (arg == QLatin1String("--remote-target")) {
65 if (i == args.count()) {
66 qWarning("Option --remote-target requires an argument.\n");
69 remoteTarget = args[i];
71 } else if (arg == QLatin1String("-h") ||
72 arg == QLatin1String("--help")) {
84 if (i < args.count()) {
85 QString fileName = args[i++];
88 if (i < args.count()) {
89 callNum = args[i++].toInt();
91 window.loadTrace(fileName, callNum);
94 if (remoteTarget.length()) {
95 window.setRemoteTarget(remoteTarget);