debugging prints

This commit is contained in:
rsc 2006-09-07 15:45:38 +00:00
parent 1542186378
commit ab17e3198b
3 changed files with 39 additions and 12 deletions

View file

@ -356,19 +356,29 @@ kbd_intr()
c += 'a' - 'A'; c += 'a' - 'A';
} }
// Ignore unknown keystrokes. switch(c){
if(c == 0x0) { case 0:
release(&kbd_lock); // Ignore unknown keystrokes.
return; break;
}
if(((kbd_w + 1) % KBD_BUF) != kbd_r){ case C('T'):
kbd_buf[kbd_w++] = c; cprintf("#"); // Let user know we're still alive.
if(kbd_w >= KBD_BUF) break;
kbd_w = 0;
wakeup(&kbd_r); case C('P'):
} else { procdump();
cprintf("kbd overflow\n"); break;
default:
if(((kbd_w + 1) % KBD_BUF) != kbd_r){
kbd_buf[kbd_w++] = c;
if(kbd_w >= KBD_BUF)
kbd_w = 0;
wakeup(&kbd_r);
} else {
cprintf("kbd overflow\n");
}
break;
} }
release(&kbd_lock); release(&kbd_lock);

1
defs.h
View file

@ -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;

16
proc.c
View file

@ -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);
}
}