Fix: syscall names for master lttng-modules
[lttngtop.git] / src / lttngtop.c
index ea9c389059f1836117b36e72c654f303d590e916..6f9c65ac6a61100436c74b768359ed5a2c781d93 100644 (file)
@@ -40,6 +40,7 @@
 #include <sys/mman.h>
 #include <sys/wait.h>
 #include <lttng/lttng.h>
+
 #ifdef LTTNGTOP_MMAP_LIVE
 #include <lttng/lttngtop-helper.h>
 #include <babeltrace/lttngtopmmappacketseek.h>
@@ -327,7 +328,7 @@ enum bt_cb_ret textdump(struct bt_ctf_event *call_data, void *private_data)
 
        cpu_id = get_cpu_id(call_data);
        procname = get_context_comm(call_data);
-       if (strncmp(bt_ctf_event_name(call_data), "sys_", 4) == 0) {
+       if (strncmp(bt_ctf_event_name(call_data), "sys", 3) == 0) {
                cpu = get_cpu(cpu_id);
                cpu->current_syscall = g_new0(struct syscall, 1);
                cpu->current_syscall->name = strdup(bt_ctf_event_name(call_data));
@@ -810,7 +811,7 @@ static int parse_options(int argc, char **argv)
                                ret = create_local_session();
                                exit(ret);
                        case OPT_CREATE_LIVE_SESSION:
-                               ret = create_live_local_session();
+                               ret = create_live_local_session(NULL, NULL, 1);
                                exit(ret);
                        case OPT_TEXTDUMP:
                                opt_textdump = 1;
@@ -943,15 +944,36 @@ void iter_trace(struct bt_context *bt_ctx)
        bt_ctf_iter_add_callback(iter,
                        g_quark_from_static_string("sys_open"),
                        NULL, 0, handle_sys_open, NULL, NULL, NULL);
+       bt_ctf_iter_add_callback(iter,
+                       g_quark_from_static_string("syscall_entry_open"),
+                       NULL, 0, handle_sys_open, NULL, NULL, NULL);
+
        bt_ctf_iter_add_callback(iter,
                        g_quark_from_static_string("sys_socket"),
                        NULL, 0, handle_sys_socket, NULL, NULL, NULL);
+       bt_ctf_iter_add_callback(iter,
+                       g_quark_from_static_string("syscall_entry_socket"),
+                       NULL, 0, handle_sys_socket, NULL, NULL, NULL);
+
        bt_ctf_iter_add_callback(iter,
                        g_quark_from_static_string("sys_close"),
                        NULL, 0, handle_sys_close, NULL, NULL, NULL);
+       bt_ctf_iter_add_callback(iter,
+                       g_quark_from_static_string("syscall_entry_close"),
+                       NULL, 0, handle_sys_close, NULL, NULL, NULL);
+
        bt_ctf_iter_add_callback(iter,
                        g_quark_from_static_string("exit_syscall"),
                        NULL, 0, handle_exit_syscall, NULL, NULL, NULL);
+       bt_ctf_iter_add_callback(iter,
+                       g_quark_from_static_string("syscall_exit_open"),
+                       NULL, 0, handle_exit_syscall, NULL, NULL, NULL);
+       bt_ctf_iter_add_callback(iter,
+                       g_quark_from_static_string("syscall_exit_socket"),
+                       NULL, 0, handle_exit_syscall, NULL, NULL, NULL);
+       bt_ctf_iter_add_callback(iter,
+                       g_quark_from_static_string("syscall_exit_close"),
+                       NULL, 0, handle_exit_syscall, NULL, NULL, NULL);
        if (opt_textdump) {
                bt_ctf_iter_add_callback(iter, 0, NULL, 0,
                                textdump,
@@ -969,9 +991,22 @@ void iter_trace(struct bt_context *bt_ctx)
                bt_ctf_iter_add_callback(iter,
                                g_quark_from_static_string("sys_write"),
                                NULL, 0, handle_sys_write, NULL, NULL, NULL);
+               bt_ctf_iter_add_callback(iter,
+                               g_quark_from_static_string("syscall_entry_write"),
+                               NULL, 0, handle_sys_write, NULL, NULL, NULL);
+               bt_ctf_iter_add_callback(iter,
+                               g_quark_from_static_string("syscall_exit_write"),
+                               NULL, 0, handle_exit_syscall, NULL, NULL, NULL);
+
                bt_ctf_iter_add_callback(iter,
                                g_quark_from_static_string("sys_read"),
                                NULL, 0, handle_sys_read, NULL, NULL, NULL);
+               bt_ctf_iter_add_callback(iter,
+                               g_quark_from_static_string("syscall_entry_read"),
+                               NULL, 0, handle_sys_read, NULL, NULL, NULL);
+               bt_ctf_iter_add_callback(iter,
+                               g_quark_from_static_string("syscall_exit_read"),
+                               NULL, 0, handle_exit_syscall, NULL, NULL, NULL);
 
                /* for kprobes */
                if (lttngtop.kprobes_table) {
@@ -1246,6 +1281,7 @@ int main(int argc, char **argv, char **envp)
 {
        int ret;
        struct bt_context *bt_ctx = NULL;
+       char *live_session_name = NULL;
 
        init_lttngtop();
        ret = parse_options(argc, argv);
@@ -1264,28 +1300,13 @@ int main(int argc, char **argv, char **envp)
 
        if (!opt_input_path && !remote_live && !opt_exec_name) {
                /* mmap live */
-#ifdef LTTNGTOP_MMAP_LIVE
-               if (opt_textdump) {
-                       signal(SIGTERM, handle_textdump_sigterm);
-                       signal(SIGINT, handle_textdump_sigterm);
-               }
-               mmap_live_loop(bt_ctx);
-               pthread_join(timer_thread, NULL);
-               quit = 1;
-               pthread_join(display_thread, NULL);
-
-               lttng_stop_tracing("test");
-               lttng_destroy_session("test");
-
-               goto end;
-#else
-               fprintf(stderr, "[ERROR] Mmap live support not compiled, specify a "
-                               "trace directory or -r <relayd hostname/IP>\n");
-               usage(stdout);
-               ret = -1;
-               goto end;
-#endif /* LTTNGTOP_MMAP_LIVE */
-       } else if (!opt_input_path && remote_live) {
+               ret = create_live_local_session(&opt_relay_hostname,
+                               &live_session_name, 0);
+               if (ret < 0)
+                       goto end;
+               remote_live = 1;
+       }
+       if (!opt_input_path && remote_live) {
                /* network live */
                bt_ctx = bt_context_create();
                ret = bt_context_add_traces_recursive(bt_ctx, opt_relay_hostname,
@@ -1295,8 +1316,6 @@ int main(int argc, char **argv, char **envp)
                        goto end;
                }
        } else {
-               //init_lttngtop();
-
                bt_ctx = bt_context_create();
                ret = bt_context_add_traces_recursive(bt_ctx, opt_input_path, "ctf", NULL);
                if (ret < 0) {
@@ -1338,5 +1357,12 @@ end:
        if (bt_ctx)
                bt_context_put(bt_ctx);
 
+       if (live_session_name) {
+               ret = destroy_live_local_session(live_session_name);
+               if (ret < 0) {
+                       fprintf(stderr, "Error destroying %s\n", live_session_name);
+               }
+       }
+
        return ret;
 }
This page took 0.037724 seconds and 4 git commands to generate.