moved stacktrace to sysctl, as vmctl is very privileged so can't

be used outside VM. IS code cleanup. added stacktrace feature to IS.
This commit is contained in:
Ben Gras
2009-01-27 12:54:33 +00:00
parent 3cc092ff06
commit c628f24bc2
12 changed files with 88 additions and 112 deletions

View File

@@ -174,7 +174,7 @@ PUBLIC void proc_stacktrace(struct proc *proc)
v_bp = proc->p_reg.fp;
kprintf("%s / %d pc 0x%lx stack ",
kprintf("%8.8s %6d 0x%lx ",
proc->p_name, proc->p_endpoint, proc->p_reg.pc);
while(v_bp) {

View File

@@ -19,8 +19,8 @@ register message *m_ptr; /* pointer to request message */
phys_bytes ph;
vir_bytes len, buf;
static char mybuf[DIAG_BUFSIZE];
struct proc *caller;
int s, i;
struct proc *caller, *target;
int s, i, proc_nr;
caller = proc_addr(who_p);
@@ -45,7 +45,11 @@ register message *m_ptr; /* pointer to request message */
kputc(mybuf[i]);
kputc(END_OF_KMESS);
return OK;
break;
case SYSCTL_CODE_STACKTRACE:
if(!isokendpt(m_ptr->SYSCTL_ARG2, &proc_nr))
return EINVAL;
proc_stacktrace(proc_addr(proc_nr));
return OK;
default:
kprintf("do_sysctl: invalid request %d\n", m_ptr->SYSCTL_CODE);
return(EINVAL);

View File

@@ -97,10 +97,6 @@ kprintf("SYSTEM: request %d:0x%lx-0x%lx, wrflag %d, failed\n",
case VMCTL_NOPAGEZERO:
return OK;
#endif
case VMCTL_STACKTRACE:
kprintf("vmctl stacktrace ");
proc_stacktrace(p);
return OK;
}
/* Try architecture-specific vmctls. */