From 4c73b034f8a3c8e145728976a27e786ecf147902 Mon Sep 17 00:00:00 2001 From: Bas Wijnen Date: Tue, 1 Sep 2009 19:00:46 +0200 Subject: [PATCH] debug stuff --- boot-programs/init.ccp | 14 +++++++++++--- invoke.ccp | 10 ++++------ iris.hhp | 6 +++--- kernel.hhp | 2 +- panic.ccp | 8 ++++---- 5 files changed, 23 insertions(+), 17 deletions(-) diff --git a/boot-programs/init.ccp b/boot-programs/init.ccp index f50e8b2..f0e19c6 100644 --- a/boot-programs/init.ccp +++ b/boot-programs/init.ccp @@ -55,12 +55,20 @@ static void setup (): if state == 2: break Caps caps = __my_memory.create_caps (2) - caps.use (slot) - Cap kc = __my_receiver.create_capability (KBD, Cap (slot, 1)) + Cap kc = __my_receiver.create_capability (KBD, Cap (slot, 0)) + kdebug ("init0: ") + caps.print (0) kbd.set_cb (kc) - Cap tc = __my_receiver.create_capability (TP, Cap (slot, 0)) + kdebug ("init1: ") + caps.print (0) + Cap tc = __my_receiver.create_capability (TP, Cap (slot, 1)) + kdebug ("init2: ") + caps.print (1) tp.set_cb (tc) + kdebug ("init3: ") + caps.print (1) pwm.call (1) + free_slot (slot) char const *decode_kbd = "0123456789abcdefghijklmnopqrstuvwxyz!@#$%^&*() T\n[],.-=/\\;|`'UDLREIKBPFZMS{}CA\":" diff --git a/invoke.ccp b/invoke.ccp index 7f1e8ee..e485c12 100644 --- a/invoke.ccp +++ b/invoke.ccp @@ -369,6 +369,7 @@ static void thread_invoke (unsigned cmd, unsigned target, Num cap_protected, kCa break case Thread::USE_SLOT: if c->data[1].l >= thread->slots || c->caps->size < 2: + dbg_send (5, 3) dpanic (c->data[1].l, "no argument given for USE_SLOT") reply_num (~0) return @@ -608,11 +609,6 @@ static void page_invoke (unsigned cmd, unsigned target, Num cap_protected, kCapa return reply_num (0) -static void print_capref (kCapRef cap): - dbg_log_num ((unsigned)cap.caps) - dbg_log_char (':') - dbg_log_num (cap.index) - static void print_cap (kCapRef cap, kCapRef self): if cap.deref () == self.deref (): dbg_log_char ('{') @@ -620,7 +616,9 @@ static void print_cap (kCapRef cap, kCapRef self): dbg_log_char ('[') dbg_log_num ((unsigned)cap.caps) dbg_log_char (':') - dbg_log_num (cap.index) + dbg_log_num (cap.index, 1) + if !cap.valid (): + dbg_log_char ('!') for kCapRef c = cap->children; c.valid (); c = c->sibling_next: print_cap (c, self) if cap.deref () == self.deref (): diff --git a/iris.hhp b/iris.hhp index 60bf173..9f51b91 100644 --- a/iris.hhp +++ b/iris.hhp @@ -525,10 +525,10 @@ void Receiver::sleep (unsigned value, OMessage *ret, unsigned slot): #define __stringify(x) __stringify2 (x) #define kdebug_line() do { kdebug (__stringify (__LINE__)); kdebug_char ('\n'); } while (0) -static void kdebug_num (unsigned n): +static void kdebug_num (unsigned n, unsigned digits = 8): unsigned i const char *encode = "0123456789abcdef" - for i = 0; i < 8; ++i: - kdebug_char (encode[(n >> (4 * (7 - i))) & 0xf]) + for i = 0; i < digits; ++i: + kdebug_char (encode[(n >> (4 * ((digits - 1) - i))) & 0xf]) #endif diff --git a/kernel.hhp b/kernel.hhp index fe29178..35f4e7c 100644 --- a/kernel.hhp +++ b/kernel.hhp @@ -207,7 +207,7 @@ extern "C": EXTERN kCapRef dbg_cap void dbg_log_char (unsigned ch) void dbg_log (char const *str) - void dbg_log_num (unsigned num) + void dbg_log_num (unsigned num, unsigned digits = 8) void dbg_send (unsigned num, unsigned bits) void check (unsigned num, char const *msg) #define dpanic(n, msg) panic (n, msg) diff --git a/panic.ccp b/panic.ccp index 41db7d9..c46a0c1 100644 --- a/panic.ccp +++ b/panic.ccp @@ -32,13 +32,13 @@ void dbg_log (char const *str): while *str: dbg_log_char (*str++) -void dbg_log_num (unsigned num): +void dbg_log_num (unsigned num, unsigned digits): char const *encode = "0123456789abcdef" - for unsigned i = 0; i < 8; ++i: - dbg_log_char (encode[(num >> (4 * (7 - i))) & 0xf]) + for unsigned i = 0; i < digits; ++i: + dbg_log_char (encode[(num >> (4 * ((digits - 1) - i))) & 0xf]) return -#if 1 || defined (NDEBUG) +#if 0 || defined (NDEBUG) void panic_impl (unsigned n, unsigned line, char const *name, char const *message): // Stop all threads. while first_scheduled: