/branches/tracing/kernel/generic/include/proc/task.h |
---|
98,7 → 98,6 |
/** Debugging stuff */ |
udebug_task_state_t dt_state; |
call_t *debug_begin_call; |
call_t *debug_go_call; |
int not_stoppable_count; |
answerbox_t kernel_box; |
/branches/tracing/kernel/generic/include/proc/thread.h |
---|
206,6 → 206,7 |
/** Debugging stuff */ |
waitq_t go_wq; |
call_t *debug_go_call; |
unative_t syscall_args[6]; |
istate_t *uspace_state; |
bool debug_stop; |
/branches/tracing/kernel/generic/src/proc/task.c |
---|
174,7 → 174,6 |
/* Init debugging stuff */ |
ta->dt_state = UDEBUG_TS_INACTIVE; |
ta->debug_begin_call = NULL; |
ta->debug_go_call = NULL; |
ta->not_stoppable_count = 0; |
ipc_answerbox_init(&ta->kernel_box, ta); |
/branches/tracing/kernel/generic/src/proc/thread.c |
---|
344,6 → 344,7 |
/* Init debugging stuff */ |
waitq_initialize(&t->go_wq); |
t->debug_go_call = NULL; |
t->uspace_state = NULL; |
t->debug_stop = true; |
/branches/tracing/kernel/generic/src/udebug/udebug_ipc.c |
---|
110,10 → 110,8 |
klog_printf("debug_go()"); |
ta = get_lock_callee_task(phone); |
// FIXME: must save this in thread struct, not task struct!!! |
ta->debug_go_call = call; |
spinlock_unlock(&ta->lock); |
// TODO: don't lock ta |
t = (thread_t *) IPC_GET_ARG2(call->data); |
120,12 → 118,14 |
ipl = interrupts_disable(); |
spinlock_lock(&threads_lock); |
if (!thread_exists(t)) { |
/* Verify that 't' exists and belongs to task 'ta' */ |
if (!thread_exists(t) || (t->task != ta)) { |
spinlock_unlock(&threads_lock); |
interrupts_restore(ipl); |
return ENOENT; |
} |
t->debug_go_call = call; |
t->debug_stop = false; |
waitq_wakeup(&t->go_wq, WAKEUP_FIRST); |
/branches/tracing/kernel/generic/src/udebug/udebug.c |
---|
81,7 → 81,7 |
if (TASK->dt_state == UDEBUG_TS_ACTIVE) { |
klog_printf("udebug_syscall_event"); |
call = TASK->debug_go_call; |
call = THREAD->debug_go_call; |
IPC_SET_RETVAL(call->data, 0); |
IPC_SET_ARG1(call->data, UDEBUG_EVENT_SYSCALL); |
IPC_SET_ARG2(call->data, id); |
102,7 → 102,7 |
*/ |
THREAD->debug_stop = true; |
ipc_answer(&TASK->answerbox, TASK->debug_go_call); |
ipc_answer(&TASK->answerbox, THREAD->debug_go_call); |
spinlock_unlock(&TASK->lock); |
interrupts_restore(ipl); |