76,7 → 76,7 |
ta = get_lock_callee_task(phone); |
klog_printf("debugging task %llu", ta->taskid); |
|
if (ta->being_debugged != false) { |
if (ta->dt_state != UDEBUG_TS_INACTIVE) { |
spinlock_unlock(&ta->lock); |
interrupts_restore(ipl); |
klog_printf("debug_begin(): busy error"); |
83,13 → 83,12 |
return EBUSY; |
} |
|
ta->being_debugged = true; |
ta->stop_request = true; |
ta->dt_state = UDEBUG_TS_BEGINNING; |
ta->debug_begin_call = call; |
|
if (ta->not_stoppable_count == 0) { |
ta->dt_state = UDEBUG_TS_ACTIVE; |
ta->debug_begin_call = NULL; |
ta->stop_request = false; |
spinlock_unlock(&ta->lock); |
interrupts_restore(ipl); |
klog_printf("debug_begin(): immediate backsend"); |
120,6 → 119,7 |
|
ipl = interrupts_disable(); |
spinlock_lock(&threads_lock); |
|
if (!thread_exists(t)) { |
spinlock_unlock(&threads_lock); |
interrupts_restore(ipl); |
126,7 → 126,9 |
return ENOENT; |
} |
|
t->debug_stop = false; |
waitq_wakeup(&t->go_wq, WAKEUP_FIRST); |
|
spinlock_unlock(&threads_lock); |
interrupts_restore(ipl); |
|