mirror of https://github.com/minexew/Shrine.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
62 lines
1.1 KiB
62 lines
1.1 KiB
//Pass the task structure you |
|
//wish to spy upon. |
|
|
|
U0 SpyStkRep(CTask *task) |
|
{ |
|
CDoc *doc=DocDblBufStart; |
|
while (!ScanChar && TaskValidate(task)) { |
|
StkRep(task); |
|
'\n'; |
|
"$$BK,1$$PRESS A KEY$$BK,0$$\n"; |
|
DocDblBufSwap; |
|
Refresh; |
|
} |
|
if (DocPut==doc) DocDblBufSwap; |
|
DocDblBufEnd; |
|
} |
|
|
|
U0 SpyCallerRep(CTask *task) |
|
{ |
|
CDoc *doc=DocDblBufStart; |
|
while (!ScanChar && TaskValidate(task)) { |
|
CallerRep(task->rbp,task); |
|
'\n'; |
|
"$$BK,1$$PRESS A KEY$$BK,0$$\n"; |
|
DocDblBufSwap; |
|
Refresh; |
|
} |
|
if (DocPut==doc) DocDblBufSwap; |
|
DocDblBufEnd; |
|
} |
|
|
|
U0 Spy() |
|
{ |
|
I64 i; |
|
CTask *task; |
|
|
|
while (TRUE) { |
|
task=Fs->next_task; |
|
while (task!=Fs) { |
|
"$$MA+X,T=\"Task:%08X:%16ts\",LM=\"0x%08X\n\"$$\n", |
|
task,task->task_name,task; |
|
task=task->next_task; |
|
} |
|
'\n'; |
|
task=GetI64("Task Addr: ",0); |
|
if (TaskValidate(task)) { |
|
"\n\n\t$$BT,\"StkRep\",LM=\"1\n\"$$\n\n\n" |
|
"\n\n\t$$BT,\"CallerRep\",LM=\"2\n\"$$\n\n\n"; |
|
i=GetI64("",0); |
|
if (i==1) |
|
SpyStkRep(task); |
|
else if (i==2) |
|
SpyCallerRep(task); |
|
else |
|
break; |
|
} else |
|
break; |
|
} |
|
'\n'; |
|
} |
|
|
|
Spy;
|
|
|