Initial revision
This commit is contained in:
parent
ed7c8e8d02
commit
76193d7cb0
223 changed files with 32479 additions and 0 deletions
48
src/libthread/debug.c
Normal file
48
src/libthread/debug.c
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
#include "threadimpl.h"
|
||||
|
||||
int _threaddebuglevel;
|
||||
|
||||
void
|
||||
__threaddebug(ulong flag, char *fmt, ...)
|
||||
{
|
||||
char buf[128];
|
||||
va_list arg;
|
||||
Fmt f;
|
||||
Proc *p;
|
||||
|
||||
if((_threaddebuglevel&flag) == 0)
|
||||
return;
|
||||
|
||||
fmtfdinit(&f, 2, buf, sizeof buf);
|
||||
|
||||
p = _threadgetproc();
|
||||
if(p==nil)
|
||||
fmtprint(&f, "noproc ");
|
||||
else if(p->thread)
|
||||
fmtprint(&f, "%d.%d ", p->pid, p->thread->id);
|
||||
else
|
||||
fmtprint(&f, "%d._ ", p->pid);
|
||||
|
||||
va_start(arg, fmt);
|
||||
fmtvprint(&f, fmt, arg);
|
||||
va_end(arg);
|
||||
fmtprint(&f, "\n");
|
||||
fmtfdflush(&f);
|
||||
}
|
||||
|
||||
void
|
||||
_threadassert(char *s)
|
||||
{
|
||||
char buf[256];
|
||||
int n;
|
||||
Proc *p;
|
||||
|
||||
p = _threadgetproc();
|
||||
if(p && p->thread)
|
||||
n = sprint(buf, "%d.%d ", p->pid, p->thread->id);
|
||||
else
|
||||
n = 0;
|
||||
snprint(buf+n, sizeof(buf)-n, "%s: assertion failed\n", s);
|
||||
write(2, buf, strlen(buf));
|
||||
abort();
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue