Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
tracegen.cpp
Go to the documentation of this file.
1
// Copyright (C) 2017 Klarälvdalens Datakonsult AB, a KDAB Group company, info@kdab.com, author Rafael Roquetto <rafael.roquetto@kdab.com>
2
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
3
4
#
include
"provider.h"
5
#
include
"ctf.h"
6
#
include
"lttng.h"
7
#
include
"etw.h"
8
#
include
"callback.h"
9
#
include
"panic.h"
10
11
#
include
<
qstring
.
h
>
12
#
include
<
qfile
.
h
>
13
14
enum
class
Target
15
{
16
LTTNG
,
17
ETW
,
18
CTF
,
19
CALLBACK
,
20
};
21
22
static
inline
void
usage
(
int
status)
23
{
24
printf(
"Usage: tracegen <lttng|etw|ctf|callback> <input file> <output file>\n"
);
25
exit(status);
26
}
27
28
static
void
parseArgs
(
int
argc,
char
*argv[],
Target
*target, QString *inFile, QString *outFile)
29
{
30
if
(argc == 1)
31
usage
(
EXIT_SUCCESS
)
;
32
if
(argc != 4)
33
usage
(
EXIT_FAILURE
)
;
34
35
const
char
*targetString = argv[1];
36
37
if
(qstrcmp(targetString,
"lttng"
) == 0) {
38
*target =
Target
::
LTTNG
;
39
}
else
if
(qstrcmp(targetString,
"etw"
) == 0) {
40
*target =
Target
::
ETW
;
41
}
else
if
(qstrcmp(targetString,
"ctf"
) == 0) {
42
*target =
Target
::
CTF
;
43
}
else
if
(qstrcmp(targetString,
"callback"
) == 0) {
44
*target =
Target
::
CALLBACK
;
45
}
else
{
46
fprintf(stderr,
"Invalid target: %s\n"
, targetString);
47
usage
(
EXIT_FAILURE
)
;
48
}
49
50
*inFile = QLatin1StringView(argv[2]);
51
*outFile = QLatin1StringView(argv[3]);
52
}
53
54
int
main
(
int
argc,
char
*argv[])
55
{
56
Target
target =
Target
::
LTTNG
;
57
QString inFile;
58
QString outFile;
59
60
parseArgs(argc, argv, &target, &inFile, &outFile);
61
62
Provider
p = parseProvider(inFile);
63
64
QFile out(outFile);
65
66
if
(!out.open(QIODevice::WriteOnly | QIODevice::Truncate)) {
67
panic(
"Cannot open '%s' for writing: %s"
,
68
qPrintable
(outFile),
qPrintable
(out.errorString()));
69
}
70
71
switch
(target) {
72
case
Target
::
CTF
:
73
writeCtf(out, p);
74
break
;
75
case
Target
::
LTTNG
:
76
writeLttng(out, p);
77
break
;
78
case
Target
::
ETW
:
79
writeEtw(out, p);
80
break
;
81
case
Target
::
CALLBACK
:
82
writeCallback(out, p);
83
break
;
84
}
85
86
return
0;
87
}
qPrintable
#define qPrintable(string)
Definition
qstring.h:1705
main
int main(int argc, char *argv[])
[ctor_close]
Definition
src_corelib_animation_qpropertyanimation.cpp:100
Provider
Definition
provider.h:82
Target
Target
Definition
tracegen.cpp:15
Target::CTF
@ CTF
Definition
tracegen.cpp:18
Target::LTTNG
@ LTTNG
Definition
tracegen.cpp:16
Target::ETW
@ ETW
Definition
tracegen.cpp:17
Target::CALLBACK
@ CALLBACK
Definition
tracegen.cpp:19
usage
static void usage(int status)
Definition
tracegen.cpp:22
parseArgs
static void parseArgs(int argc, char *argv[], Target *target, QString *inFile, QString *outFile)
Definition
tracegen.cpp:28
qtbase
src
tools
tracegen
tracegen.cpp
Generated on
for Qt by
1.16.1