[PATCH 06/12] record: Add option to print config default values

Sebastian Huber sebastian.huber at embedded-brains.de
Mon Mar 16 10:50:26 UTC 2020


Update #3904.
---
 trace/record/record-main-lttng.cc | 35 ++++++++++++++++++++++++++---------
 1 file changed, 26 insertions(+), 9 deletions(-)

diff --git a/trace/record/record-main-lttng.cc b/trace/record/record-main-lttng.cc
index 891281e..15536f4 100644
--- a/trace/record/record-main-lttng.cc
+++ b/trace/record/record-main-lttng.cc
@@ -759,9 +759,10 @@ static void SignalHandler(int s) {
 }
 
 static const struct option kLongOpts[] = {
-    {"elf", 1, NULL, 'e'},   {"help", 0, NULL, 'h'}, {"host", 1, NULL, 'H'},
-    {"limit", 1, NULL, 'l'}, {"port", 1, NULL, 'p'}, {"config", 1, NULL, 'c'},
-    {NULL, 0, NULL, 0}};
+    {"elf", 1, NULL, 'e'},      {"help", 0, NULL, 'h'},
+    {"host", 1, NULL, 'H'},     {"limit", 1, NULL, 'l'},
+    {"port", 1, NULL, 'p'},     {"config", 1, NULL, 'c'},
+    {"defaults", 0, NULL, 'd'}, {NULL, 0, NULL, 0}};
 
 static void Usage(char** argv) {
   std::cout << argv[0] << " [OPTION]... [INPUT-FILE]" << std::endl
@@ -781,9 +782,22 @@ static void Usage(char** argv) {
             << std::endl
             << "  -c, --config=CONFIG        an INI-style configuration file"
             << std::endl
+            << "  -d, --defaults             print default values for "
+               "configuration file"
+            << std::endl
             << "  INPUT-FILE                 the input file" << std::endl;
 }
 
+static void PrintDefaults() {
+  std::cout << "[EventNames]" << std::endl;
+
+  for (int i = 0; i <= RTEMS_RECORD_LAST; ++i) {
+    std::cout << i << " = "
+              << rtems_record_event_text(static_cast<rtems_record_event>(i))
+              << std::endl;
+  }
+}
+
 int main(int argc, char** argv) {
   const char* host = "127.0.0.1";
   uint16_t port = 1234;
@@ -793,27 +807,30 @@ int main(int argc, char** argv) {
   int opt;
   int longindex;
 
-  while ((opt = getopt_long(argc, argv, "e:hH:l:p:c:", &kLongOpts[0],
+  while ((opt = getopt_long(argc, argv, "hH:p:l:be:c:d", &kLongOpts[0],
                             &longindex)) != -1) {
     switch (opt) {
-      case 'e':
-        elf_file = optarg;
-        break;
       case 'h':
         Usage(argv);
         return 0;
       case 'H':
         host = optarg;
         break;
+      case 'p':
+        port = (uint16_t)strtoul(optarg, NULL, 0);
+        break;
       case 'l':
         client.set_limit(strtoull(optarg, NULL, 0));
         break;
-      case 'p':
-        port = (uint16_t)strtoul(optarg, NULL, 0);
+      case 'e':
+        elf_file = optarg;
         break;
       case 'c':
         config_file = optarg;
         break;
+      case 'd':
+        PrintDefaults();
+        return 0;
       default:
         return 1;
     }
-- 
2.16.4



More information about the devel mailing list