From 5acf66a2d4e76950b0b4f55158b67ca01a637656 Mon Sep 17 00:00:00 2001 From: Neha Sharan Date: Wed, 19 Apr 2023 12:44:43 -0700 Subject: [PATCH 1/3] Added an option to print out messages while exporting a .trace file to CSV using csvexport utility --- csvexport/src/csvexport.cpp | 54 +++++++++++++++++++++++++++++++------ 1 file changed, 46 insertions(+), 8 deletions(-) diff --git a/csvexport/src/csvexport.cpp b/csvexport/src/csvexport.cpp index c0654c44..21caebdf 100644 --- a/csvexport/src/csvexport.cpp +++ b/csvexport/src/csvexport.cpp @@ -23,12 +23,13 @@ void print_usage_exit(int e) fprintf(stderr, "Usage:\n"); fprintf(stderr, " extract [OPTION...] \n"); fprintf(stderr, "\n"); - fprintf(stderr, " -h, --help Print usage\n"); - fprintf(stderr, " -f, --filter arg Filter zone names (default: "")\n"); - fprintf(stderr, " -s, --sep arg CSV separator (default: ,)\n"); - fprintf(stderr, " -c, --case Case sensitive filtering\n"); - fprintf(stderr, " -e, --self Get self times\n"); - fprintf(stderr, " -u, --unwrap Report each zone event\n"); + fprintf(stderr, " -h, --help Print usage\n"); + fprintf(stderr, " -f, --filter arg Filter zone names (default: "")\n"); + fprintf(stderr, " -s, --sep arg CSV separator (default: ,)\n"); + fprintf(stderr, " -c, --case Case sensitive filtering\n"); + fprintf(stderr, " -e, --self Get self times\n"); + fprintf(stderr, " -u, --unwrap Report each zone event\n"); + fprintf(stderr, " -m, --unwrap only messages Report only messages\n"); exit(e); } @@ -40,6 +41,7 @@ struct Args { bool case_sensitive; bool self_time; bool unwrap; + bool unwrapMessages; }; Args parse_args(int argc, char** argv) @@ -49,7 +51,7 @@ Args parse_args(int argc, char** argv) print_usage_exit(1); } - Args args = { "", ",", "", false, false, false }; + Args args = { "", ",", "", false, false, false, false }; struct option long_opts[] = { { "help", no_argument, NULL, 'h' }, @@ -58,11 +60,12 @@ Args parse_args(int argc, char** argv) { "case", no_argument, NULL, 'c' }, { "self", no_argument, NULL, 'e' }, { "unwrap", no_argument, NULL, 'u' }, + { "messages", no_argument, NULL, 'm' }, { NULL, 0, NULL, 0 } }; int c; - while ((c = getopt_long(argc, argv, "hf:s:ceu", long_opts, NULL)) != -1) + while ((c = getopt_long(argc, argv, "hf:s:ceum", long_opts, NULL)) != -1) { switch (c) { @@ -84,6 +87,9 @@ Args parse_args(int argc, char** argv) case 'u': args.unwrap = true; break; + case 'm': + args.unwrapMessages = true; + break; default: print_usage_exit(1); break; @@ -198,6 +204,38 @@ int main(int argc, char** argv) auto worker = tracy::Worker(*f); + if (args.unwrapMessages) + { + const auto& msgs = worker.GetMessages(); + + if (msgs.size() > 0) + { + std::vector columnsForMessages; + columnsForMessages = { + "MessageName", "total_ns" + }; + std::string headerForMessages = join(columnsForMessages, args.separator); + printf("%s\n", headerForMessages.data()); + + for(auto& it : msgs) + { + std::vector values(columnsForMessages.size()); + + values[0] = worker.GetString(it->ref); + values[1] = std::to_string(it->time); + + std::string row = join(values, args.separator); + printf("%s\n", row.data()); + } + } + else + { + printf("There are currently no messages!\n"); + } + + return 0; + } + while (!worker.AreSourceLocationZonesReady()) { std::this_thread::sleep_for(std::chrono::milliseconds(10)); From 518fd6ec790d2bb683459e1077e15acbab1559f1 Mon Sep 17 00:00:00 2001 From: Neha Sharan Date: Thu, 20 Apr 2023 10:09:13 -0700 Subject: [PATCH 2/3] cosmetic change --- csvexport/src/csvexport.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/csvexport/src/csvexport.cpp b/csvexport/src/csvexport.cpp index 21caebdf..59e13520 100644 --- a/csvexport/src/csvexport.cpp +++ b/csvexport/src/csvexport.cpp @@ -23,13 +23,13 @@ void print_usage_exit(int e) fprintf(stderr, "Usage:\n"); fprintf(stderr, " extract [OPTION...] \n"); fprintf(stderr, "\n"); - fprintf(stderr, " -h, --help Print usage\n"); - fprintf(stderr, " -f, --filter arg Filter zone names (default: "")\n"); - fprintf(stderr, " -s, --sep arg CSV separator (default: ,)\n"); - fprintf(stderr, " -c, --case Case sensitive filtering\n"); - fprintf(stderr, " -e, --self Get self times\n"); - fprintf(stderr, " -u, --unwrap Report each zone event\n"); - fprintf(stderr, " -m, --unwrap only messages Report only messages\n"); + fprintf(stderr, " -h, --help Print usage\n"); + fprintf(stderr, " -f, --filter arg Filter zone names (default: "")\n"); + fprintf(stderr, " -s, --sep arg CSV separator (default: ,)\n"); + fprintf(stderr, " -c, --case Case sensitive filtering\n"); + fprintf(stderr, " -e, --self Get self times\n"); + fprintf(stderr, " -u, --unwrap Report each zone event\n"); + fprintf(stderr, " -m, --messages Report only messages\n"); exit(e); } From 534baa829d4475f06b5a71b6bb1e94f89c06d1e9 Mon Sep 17 00:00:00 2001 From: Neha Sharan Date: Thu, 20 Apr 2023 14:27:15 -0700 Subject: [PATCH 3/3] correcting indentation --- csvexport/src/csvexport.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/csvexport/src/csvexport.cpp b/csvexport/src/csvexport.cpp index 59e13520..31b4b929 100644 --- a/csvexport/src/csvexport.cpp +++ b/csvexport/src/csvexport.cpp @@ -233,7 +233,7 @@ int main(int argc, char** argv) printf("There are currently no messages!\n"); } - return 0; + return 0; } while (!worker.AreSourceLocationZonesReady())