Commit dd9fe29c authored by Dr. David Alan Gilbert's avatar Dr. David Alan Gilbert Committed by Stefan Hajnoczi
Browse files

trace: Print PID and time in stderr traces



When debugging migration it's useful to know the PID of
each trace message so you can figure out if it came from the source
or the destination.

Printing the time makes it easy to do latency measurements or timings
between trace points.

Signed-off-by: default avatarDr. David Alan Gilbert <dgilbert@redhat.com>
Message-id: 1421746875-9962-1-git-send-email-dgilbert@redhat.com
Signed-off-by: default avatarStefan Hajnoczi <stefanha@redhat.com>
parent 16017c48
Loading
Loading
Loading
Loading
+9 −1
Original line number Diff line number Diff line
@@ -21,6 +21,9 @@ PUBLIC = True

def generate_h_begin(events):
    out('#include <stdio.h>',
        '#include <sys/time.h>',
        '#include <sys/types.h>',
        '#include <unistd.h>',
        '#include "trace/control.h"',
        '')

@@ -31,7 +34,12 @@ def generate_h(event):
        argnames = ", " + argnames

    out('    if (trace_event_get_state(%(event_id)s)) {',
        '        fprintf(stderr, "%(name)s " %(fmt)s "\\n" %(argnames)s);',
        '        struct timeval _now;',
        '        gettimeofday(&_now, NULL);',
        '        fprintf(stderr, "%%d@%%zd.%%06zd:%(name)s " %(fmt)s "\\n",',
        '                        getpid(),',
        '                        (size_t)_now.tv_sec, (size_t)_now.tv_usec',
        '                        %(argnames)s);',
        '    }',
        event_id="TRACE_" + event.name.upper(),
        name=event.name,