Subversion Repositories HelenOS

Compare Revisions

Ignore whitespace Rev 2897 → Rev 2898

/branches/tracing/uspace/app/sctrace/sctrace.c
62,6 → 62,9
int phoneid;
int abort_trace;
 
unsigned thash;
volatile int paused;
 
void thread_trace_start(unsigned thread_hash);
 
static proto_t *proto_console;
334,6 → 337,16
case UDEBUG_EVENT_SYSCALL:
event_syscall(thread_id, thread_hash, val0, (int)val1);
break;
case UDEBUG_EVENT_STOP:
printf("stop event\n");
printf("waiting for resume\n");
while (paused) {
usleep(1000000);
fibril_yield();
printf(".");
}
printf("resumed\n");
break;
case UDEBUG_EVENT_NEW_THREAD:
event_new_thread(val0);
break;
352,6 → 365,8
{
fid_t fid;
 
thash = thread_hash;
 
fid = fibril_create(trace_loop, (void *)thread_hash);
if (fid == 0) {
printf("Warning: Failed creating fibril\n");
364,6 → 379,7
int taskid;
int i;
int rc;
int c;
 
printf("Syscall Tracer\n");
printf("Press 'c' to connect\n");
394,7 → 410,18
thread_trace_start(thread_hash_buf[i]);
}
 
getchar();
while(1) {
c = getchar();
if (c == 'q') break;
if (c == 'p') {
paused = 1;
rc = debug_stop(phoneid, thash);
printf("stop -> %d\n", rc);
}
if (c == 'r') {
paused = 0;
}
}
 
printf("terminate debugging session...\n");
abort_trace = 1;
413,6 → 440,7
oper_t *o;
 
next_thread_id = 1;
paused = 0;
 
proto_init();