Relative timestamps are much easier to decipher than absolute, when attempting
to determine a program's behavior. Most of the time I care about how long
since the last time. However, if I grep the output, then I lose the basis for
relative times, and am back to doing large number substraction in my head.

What I really want in many cases, is timestamps relative to the start of the
trace. I didn't know what letter to pick, so since I want a mix of T and R, I
just made the option be both together.


Index: kdump.c
===================================================================
RCS file: /cvs/src/usr.bin/kdump/kdump.c,v
retrieving revision 1.127
diff -u -p -r1.127 kdump.c
--- kdump.c     30 Mar 2016 08:00:01 -0000      1.127
+++ kdump.c     1 Jun 2016 17:34:29 -0000
@@ -185,11 +185,11 @@ main(int argc, char *argv[])
                        if (errstr)
                                errx(1, "-p %s: %s", optarg, errstr);
                        break;
-               case 'R':
-                       timestamp = 2;  /* relative timestamp */
+               case 'R':       /* relative timestamp */
+                       timestamp = timestamp == 1 ? 3 : 2;
                        break;
                case 'T':
-                       timestamp = 1;
+                       timestamp = timestamp == 2 ? 3 : 1;
                        break;
                case 't':
                        trpoints = getpoints(optarg);
@@ -349,7 +349,11 @@ dumpheader(struct ktr_header *kth)
                basecol += printf("/%-7ld", (long)kth->ktr_tid);
        basecol += printf(" %-8.*s ", MAXCOMLEN, kth->ktr_comm);
        if (timestamp) {
-               if (timestamp == 2) {
+               if (timestamp == 3) {
+                       if (prevtime.tv_sec == 0)
+                               prevtime = kth->ktr_time;
+                       timespecsub(&kth->ktr_time, &prevtime, &temp);
+               } else if (timestamp == 2) {
                        timespecsub(&kth->ktr_time, &prevtime, &temp);
                        prevtime = kth->ktr_time;
                } else
Index: kdump.1
===================================================================
RCS file: /cvs/src/usr.bin/kdump/kdump.1,v
retrieving revision 1.30
diff -u -p -r1.30 kdump.1
--- kdump.1     6 Mar 2016 20:25:27 -0000       1.30
+++ kdump.1     1 Jun 2016 17:39:24 -0000
@@ -92,6 +92,8 @@ specified.
 Display relative timestamps (time since previous entry).
 .It Fl T
 Display absolute timestamps for each entry (seconds since the Epoch).
+.It Fl TR
+If both options are specified, display timestamps relative to trace start.
 .It Fl t Op Cm cinstuxX+
 Selects which tracepoints to display.
 See the

Reply via email to