X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=src%2Fcursesdisplay.c;h=b9429db70708bfaa4e30382f4206fbac9b3bb9c1;hb=975146835356f6d40d6d3ac7ad6fec30f113b264;hp=16e378b40cdcce0d1c911b95819754d5501ab3ae;hpb=69362330631ab42f9fa2a949ceeed334ae50a6a6;p=lttngtop.git diff --git a/src/cursesdisplay.c b/src/cursesdisplay.c index 16e378b..b9429db 100644 --- a/src/cursesdisplay.c +++ b/src/cursesdisplay.c @@ -418,6 +418,7 @@ void update_cputop_display() nblinedisplayed < max_center_lines; i++) { tmp = g_ptr_array_index(data->process_table, i); + /* FIXME : random segfault here */ if (process_selected(tmp)) { wattron(center, COLOR_PAIR(6)); mvwhline(center, current_line + header_offset, 1, ' ', COLS-3); @@ -490,23 +491,25 @@ void update_process_details() { unsigned long elapsed; double maxcputime; - struct processtop *tmp = find_process_tid(data, - selected_process->tid, - selected_process->comm); + struct processtop *tmp; struct files *file_tmp; int i, j = 0; char unit[4]; + char filename_buf[COLS]; set_window_title(center, "Process details"); + tmp = find_process_tid(data, + selected_process->tid, + selected_process->comm); elapsed = data->end - data->start; maxcputime = elapsed * data->cpu_table->len / 100.0; print_key_title("Name", 1); - wprintw(center, "%s", tmp->comm); + wprintw(center, "%s", selected_process->comm); print_key_title("TID", 2); - wprintw(center, "%d", tmp->tid); + wprintw(center, "%d", selected_process->tid); if (!tmp) { print_key_title("Does not exit at this time", 3); return; @@ -534,7 +537,8 @@ void update_process_details() mvwprintw(center, 8, 24, "FILENAME"); wattroff(center, A_BOLD); - for (i = 0; i < tmp->process_files_table->len; i++) { + for (i = selected_line; i < tmp->process_files_table->len && + i < (selected_line + max_center_lines - 7); i++) { file_tmp = get_file(tmp, i); if (file_tmp != NULL) { mvwprintw(center, 9 + j, 1, "%d", i); @@ -542,7 +546,8 @@ void update_process_details() mvwprintw(center, 9 + j, 10, "%s", unit); scale_unit(file_tmp->write, unit); mvwprintw(center, 9 + j, 17, "%s", unit); - mvwprintw(center, 9 + j, 24, "%s", file_tmp->name); + snprintf(filename_buf, COLS - 25, "%s", file_tmp->name); + mvwprintw(center, 9 + j, 24, "%s", filename_buf); j++; } }