Fix: syscall event rule: emission sites not compared in is_equal
[lttng-tools.git] / src / bin / lttng / lttng.cpp
index 5f6e0f66e73477952472aa034f5f4c77ae759f72..48b02c6272687ed3d905ddc363c47d19d182e5b0 100644 (file)
@@ -234,7 +234,13 @@ static int handle_command(int argc, char **argv)
        while (cmd->name != nullptr) {
                /* Find command */
                if (strcmp(argv[0], cmd->name) == 0) {
-                       ret = cmd->func(argc, (const char **) argv);
+                       try {
+                               ret = cmd->func(argc, (const char **) argv);
+                       } catch (const std::exception& e) {
+                               ERR_FMT("{}", e.what());
+                               ret = CMD_ERROR;
+                       }
+
                        goto end;
                }
                i++;
@@ -460,7 +466,7 @@ error:
 /*
  *  main
  */
-int main(int argc, char *argv[])
+static int _main(int argc, char *argv[])
 {
        int ret;
 
@@ -478,3 +484,13 @@ int main(int argc, char *argv[])
 
        return 0;
 }
+
+int main(int argc, char **argv)
+{
+       try {
+               return _main(argc, argv);
+       } catch (const std::exception& e) {
+               ERR_FMT("Unhandled exception caught by client: {}", e.what());
+               abort();
+       }
+}
This page took 0.023102 seconds and 4 git commands to generate.