X-Git-Url: https://git.lttng.org/?p=lttngtop.git;a=blobdiff_plain;f=src%2Fiostreamtop.c;h=7c4a30d56aa3ed506073d6819fe347f8b9dbed33;hp=33b901938b9356e65690694c297f403483edd84b;hb=e91044a87b91260e62779769d4faad2a58c5a80c;hpb=928f18a6c02cf1eaafb7b60cb72860ed68d7456b diff --git a/src/iostreamtop.c b/src/iostreamtop.c index 33b9019..7c4a30d 100644 --- a/src/iostreamtop.c +++ b/src/iostreamtop.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2011 Mathieu Bain + * Copyright (C) 2011-2012 Mathieu Bain * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License Version 2 as @@ -31,13 +31,17 @@ void add_file(struct processtop *proc, struct files *file, int fd) struct files *tmp_file; struct processtop *parent; int size; + int i; size = proc->process_files_table->len; parent = proc->threadparent; if (parent) insert_file(parent, fd); if (size <= fd) { - g_ptr_array_set_size(proc->process_files_table, fd); + /* Add NULL file structures for undefined FDs */ + for (i = size; i < fd; i++) { + g_ptr_array_add(proc->process_files_table, NULL); + } g_ptr_array_add(proc->process_files_table, file); } else { tmp_file = g_ptr_array_index(proc->process_files_table, fd); @@ -256,13 +260,13 @@ struct file_history *create_file(struct file_history *history, char *file_name) enum bt_cb_ret handle_exit_syscall(struct bt_ctf_event *call_data, void *private_data) { - const struct definition *scope; + const struct bt_definition *scope; unsigned long timestamp; char *comm; uint64_t ret, tid; uint64_t cpu_id; - timestamp = bt_ctf_get_timestamp(call_data); + timestamp = bt_ctf_get_real_timestamp(call_data); if (timestamp == -1ULL) goto error; @@ -298,7 +302,7 @@ error: enum bt_cb_ret handle_sys_write(struct bt_ctf_event *call_data, void *private_data) { - const struct definition *scope; + const struct bt_definition *scope; struct processtop *tmp; unsigned long timestamp; uint64_t cpu_id; @@ -306,7 +310,7 @@ enum bt_cb_ret handle_sys_write(struct bt_ctf_event *call_data, char *procname; int fd; - timestamp = bt_ctf_get_timestamp(call_data); + timestamp = bt_ctf_get_real_timestamp(call_data); if (timestamp == -1ULL) goto error; @@ -339,14 +343,14 @@ enum bt_cb_ret handle_sys_read(struct bt_ctf_event *call_data, void *private_data) { struct processtop *tmp; - const struct definition *scope; + const struct bt_definition *scope; unsigned long timestamp; uint64_t cpu_id; int64_t tid; char *procname; int fd; - timestamp = bt_ctf_get_timestamp(call_data); + timestamp = bt_ctf_get_real_timestamp(call_data); if (timestamp == -1ULL) goto error; @@ -381,14 +385,14 @@ enum bt_cb_ret handle_sys_open(struct bt_ctf_event *call_data, { struct processtop *tmp; - const struct definition *scope; + const struct bt_definition *scope; unsigned long timestamp; uint64_t cpu_id; int64_t tid; char *procname; char *file; - timestamp = bt_ctf_get_timestamp(call_data); + timestamp = bt_ctf_get_real_timestamp(call_data); if (timestamp == -1ULL) goto error; @@ -421,14 +425,14 @@ error: enum bt_cb_ret handle_sys_close(struct bt_ctf_event *call_data, void *private_data) { - const struct definition *scope; + const struct bt_definition *scope; struct processtop *tmp; unsigned long timestamp; int64_t tid; char *procname; int fd; - timestamp = bt_ctf_get_timestamp(call_data); + timestamp = bt_ctf_get_real_timestamp(call_data); if (timestamp == -1ULL) goto error; @@ -458,7 +462,7 @@ error: enum bt_cb_ret handle_statedump_file_descriptor(struct bt_ctf_event *call_data, void *private_data) { - const struct definition *scope; + const struct bt_definition *scope; struct processtop *parent; struct files *file; unsigned long timestamp; @@ -466,7 +470,7 @@ enum bt_cb_ret handle_statedump_file_descriptor(struct bt_ctf_event *call_data, char *file_name; int fd; - timestamp = bt_ctf_get_timestamp(call_data); + timestamp = bt_ctf_get_real_timestamp(call_data); if (timestamp == -1ULL) goto error;