citrun

watch C/C++ source code execute
Log | Files | Refs | LICENSE

commit 2024d69aa106dff266e545a53f2fcee2fd1bf1fa
parent 5269ed50adcdb0b6e8bb571fcef12392b09dc566
Author: Kyle Milz <kyle@0x30.net>
Date:   Fri, 22 Jul 2016 19:36:05 -0600

src: start seeing it run

Diffstat:
Msrc/term_main.cc | 38+++++++++++++++++++++++++++++++-------
1 file changed, 31 insertions(+), 7 deletions(-)

diff --git a/src/term_main.cc b/src/term_main.cc @@ -1,5 +1,9 @@ -#include <stdlib.h> // exit +/* + * Original idea for this program from Max Zunti. + */ +#include <iostream> #include <ncurses.h> +#include <stdlib.h> // exit #include "af_unix.h" #include "runtime_conn.h" @@ -7,9 +11,7 @@ int main(int argc, char *argv[]) { - int ch; af_unix listen_sock; - listen_sock.set_listen(); initscr(); @@ -19,7 +21,7 @@ main(int argc, char *argv[]) exit(1); } start_color(); - init_pair(1, COLOR_RED, COLOR_BLACK); + init_pair(1, COLOR_GREEN, COLOR_BLACK); printw("Waiting for connection on /tmp/citrun-gl.socket\n"); refresh(); @@ -29,10 +31,32 @@ main(int argc, char *argv[]) errx(1, "client was NULL"); RuntimeProcess conn(*client); - printw("program name: %s\n", conn.program_name.c_str()); - printw("program name: %s\n", conn.program_name.c_str()); - refresh(); + while (1) { + erase(); + + conn.read_executions(); + + auto &t = conn.translation_units[0]; + std::vector<uint32_t>::iterator e = t.execution_counts.begin(); + std::vector<std::string>::iterator l = t.source.begin(); + + e++; + while (e != t.execution_counts.end() && l != t.source.end()) { + if (*e > 10 * 1000) + attron(COLOR_PAIR(1)); + printw("%s\n", l->c_str()); + if (*e > 10 * 1000) + attroff(COLOR_PAIR(1)); + e++; + l++; + } + + refresh(); + } + + printw("program name: %s\n", conn.program_name.c_str()); + printw("num tus: %i\n", conn.num_tus); getch(); endwin();