Removes debugging code
[akaros.git] / kern / arch / riscv / kdebug.c
index 1fb4785..0c00943 100644 (file)
 
 #include <ros/memlayout.h>
 
-int debuginfo_eip(uintptr_t eip, struct eipdebuginfo *info)
+void backtrace(void)
 {
-       // DWARF-2 works for RISC-V, so in principle this is implementable.
-       
-       static bool once = TRUE;
-       if (once) {
-               warn("Not implemented for RISC-V");
-               once = FALSE;
+       void **fp;
+       asm volatile ("move %0, s0" : "=r"(fp));
+
+       for (int i = 0; ; i++) {
+               void *pc = fp[-1], *sp = fp[-2];
+               printk("[%d] pc %p sp %p\n", i, pc, sp);
+               if (pc == 0 || (void**)sp < fp)
+                       break;
+               fp = (void**)sp;
        }
-       return 0;
 }
 
-void
-backtrace(void)
+void backtrace_frame(uintptr_t pc, uintptr_t fp)
+{
+       printk("\n\tTODO: backtrace frame on riscv\n\n");
+}
+
+/* can either implement these, or use the x86 ones globally and limit the
+ * arch-indep stuff. */
+size_t backtrace_list(uintptr_t pc, uintptr_t fp, uintptr_t *pcs,
+                      size_t nr_slots)
 {
-  panic("No backtrace yet!");
+       printk("\n\tTODO: backtrace list on riscv\n\n");
+       return 0;
 }