提交 ab17e319 创建 作者: rsc's avatar rsc

debugging prints

上级 15421863
...@@ -356,12 +356,20 @@ kbd_intr() ...@@ -356,12 +356,20 @@ kbd_intr()
c += 'a' - 'A'; c += 'a' - 'A';
} }
switch(c){
case 0:
// Ignore unknown keystrokes. // Ignore unknown keystrokes.
if(c == 0x0) { break;
release(&kbd_lock);
return;
}
case C('T'):
cprintf("#"); // Let user know we're still alive.
break;
case C('P'):
procdump();
break;
default:
if(((kbd_w + 1) % KBD_BUF) != kbd_r){ if(((kbd_w + 1) % KBD_BUF) != kbd_r){
kbd_buf[kbd_w++] = c; kbd_buf[kbd_w++] = c;
if(kbd_w >= KBD_BUF) if(kbd_w >= KBD_BUF)
...@@ -370,6 +378,8 @@ kbd_intr() ...@@ -370,6 +378,8 @@ kbd_intr()
} else { } else {
cprintf("kbd overflow\n"); cprintf("kbd overflow\n");
} }
break;
}
release(&kbd_lock); release(&kbd_lock);
} }
......
...@@ -24,6 +24,7 @@ void proc_exit(void); ...@@ -24,6 +24,7 @@ void proc_exit(void);
int proc_kill(int); int proc_kill(int);
int proc_wait(void); int proc_wait(void);
void yield(void); void yield(void);
void procdump(void);
// swtch.S // swtch.S
struct jmpbuf; struct jmpbuf;
......
...@@ -403,3 +403,19 @@ proc_wait(void) ...@@ -403,3 +403,19 @@ proc_wait(void)
} }
} }
// Print a process listing to console. For debugging.
// Runs when user types ^P on console.
// No lock to avoid wedging a stuck machine further.
void
procdump(void)
{
int i;
struct proc *p;
for(i = 0; i < NPROC; i++) {
p = &proc[i];
if(p->state == UNUSED)
continue;
cprintf("%d %d %p\n", p->pid, p->state);
}
}
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论