From 5e542623f3dafab636adbe5690a8a4716a96f956 Mon Sep 17 00:00:00 2001 From: Jiri Olsa Date: Tue, 15 Sep 2009 18:54:43 +0200 Subject: added initial support for timestamp display --- src/output.c | 32 ++++++++++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) (limited to 'src/output.c') diff --git a/src/output.c b/src/output.c index b8e8bed..cadf3c6 100644 --- a/src/output.c +++ b/src/output.c @@ -19,6 +19,8 @@ */ #include +#include +#include #include "config.h" @@ -35,6 +37,22 @@ do { \ fprintf(cfg->fout, "%5d ", (pid_t) syscall(SYS_gettid)); \ } while(0) +#define PRINT_TIME(tv) \ +do { \ + struct tm t; \ +\ + gettimeofday(tv, NULL); \ + localtime_r(&tv->tv_sec, &t); \ + fprintf(cfg->fout, "[%02d/%02d/%4d %02d:%02d:%02d.%06u] ", \ + t.tm_mon, \ + t.tm_mday, \ + t.tm_year + 1900, \ + t.tm_hour, \ + t.tm_min, \ + t.tm_sec, \ + (unsigned int) tv->tv_usec); \ +} while(0) + /* libiberty external */ extern char* cplus_demangle(const char *mangled, int options); @@ -48,11 +66,16 @@ do { \ } \ } while(0) -int lt_out_entry(struct lt_config_shared *cfg, const char *symname, char *lib_to, +int lt_out_entry(struct lt_config_shared *cfg, + struct timeval *tv, + const char *symname, char *lib_to, char *argbuf, char *argdbuf) { int demangled = 0; + if (cfg->timestamp && tv) + PRINT_TIME(tv); + /* Print thread ID */ if (!cfg->hide_tid) PRINT_TID(); @@ -84,7 +107,9 @@ int lt_out_entry(struct lt_config_shared *cfg, const char *symname, char *lib_to return 0; } -int lt_out_exit(struct lt_config_shared *cfg, const char *symname, char *lib_to, +int lt_out_exit(struct lt_config_shared *cfg, + struct timeval *tv, + const char *symname, char *lib_to, char *argbuf, char *argdbuf) { int demangled = 0; @@ -92,6 +117,9 @@ int lt_out_exit(struct lt_config_shared *cfg, const char *symname, char *lib_to, if (!*argbuf && (!cfg->braces)) return 0; + if (cfg->timestamp && tv) + PRINT_TIME(tv); + /* Print thread ID */ if (!cfg->hide_tid) PRINT_TID(); -- cgit