Add dmesg to the monitor
authorBarret Rhoden <brho@cs.berkeley.edu>
Mon, 13 Aug 2018 20:32:00 +0000 (16:32 -0400)
committerBarret Rhoden <brho@cs.berkeley.edu>
Mon, 13 Aug 2018 20:32:00 +0000 (16:32 -0400)
Signed-off-by: Barret Rhoden <brho@cs.berkeley.edu>
kern/include/kprof.h
kern/include/monitor.h
kern/src/monitor.c

index 3a11509..9b8b2aa 100644 (file)
@@ -11,5 +11,6 @@
 size_t kprof_tracedata_size(void);
 size_t kprof_tracedata_read(void *data, size_t size, size_t offset);
 void kprof_tracedata_write(const char *pretty_buf, size_t len);
+void kprof_dump_data(void);
 void trace_vprintk(const char *fmt, va_list args);
 void trace_printk(const char *fmt, ...);
index e9d0d37..c944c24 100644 (file)
@@ -42,3 +42,4 @@ int mon_ks(int argc, char **argv, struct hw_trapframe *hw_tf);
 int mon_coreinfo(int argc, char **argv, struct hw_trapframe *hw_tf);
 int mon_hexdump(int argc, char **argv, struct hw_trapframe *hw_tf);
 int mon_pahexdump(int argc, char **argv, struct hw_trapframe *hw_tf);
+int mon_dmesg(int argc, char **argv, struct hw_trapframe *hw_tf);
index be56b11..34bc68c 100644 (file)
@@ -24,6 +24,7 @@
 #include <trap.h>
 #include <time.h>
 #include <percpu.h>
+#include <kprof.h>
 
 #include <ros/memlayout.h>
 #include <ros/event.h>
@@ -74,6 +75,7 @@ static command_t commands[] = {
        { "hd", "Hexdump PID's memory (0 for kernel)", mon_hexdump},
        { "pahexdump", "Hexdump physical memory", mon_pahexdump},
        { "phd", "Hexdump physical memory", mon_pahexdump},
+       { "dmesg", "Dump the dmesg buffer", mon_dmesg},
 };
 #define NCOMMANDS (sizeof(commands)/sizeof(commands[0]))
 
@@ -1211,3 +1213,9 @@ int mon_pahexdump(int argc, char **argv, struct hw_trapframe *hw_tf)
        pahexdump(start, len);
        return 0;
 }
+
+int mon_dmesg(int argc, char **argv, struct hw_trapframe *hw_tf)
+{
+       kprof_dump_data();
+       return 0;
+}