* strace.cc (strace::vprntf): Move prntf functionality to this function
adding an va_list interface to strace. (strace::printf): Calls strace::vprntf now. (strace_printf): New function providing an extern "C" interface to trace output. * include/sys/strace.h: Make plain C clean. (class strace): Add `vprntf' method.
This commit is contained in:
@@ -183,17 +183,15 @@ strace::write (unsigned category, const char *buf, int count)
|
||||
Warning: DO NOT SET ERRNO HERE! */
|
||||
|
||||
void
|
||||
strace::prntf (unsigned category, const char *func, const char *fmt, ...)
|
||||
strace::vprntf (unsigned category, const char *func, const char *fmt, va_list ap)
|
||||
{
|
||||
DWORD err = GetLastError ();
|
||||
int count;
|
||||
char buf[10000];
|
||||
va_list ap;
|
||||
|
||||
PROTECT(buf);
|
||||
SetLastError (err);
|
||||
|
||||
va_start (ap, fmt);
|
||||
count = this->vsprntf (buf, func, fmt, ap);
|
||||
CHECK(buf);
|
||||
if (category & _STRACE_SYSTEM)
|
||||
@@ -210,6 +208,27 @@ strace::prntf (unsigned category, const char *func, const char *fmt, ...)
|
||||
SetLastError (err);
|
||||
}
|
||||
|
||||
void
|
||||
strace::prntf (unsigned category, const char *func, const char *fmt, ...)
|
||||
{
|
||||
va_list ap;
|
||||
|
||||
va_start (ap, fmt);
|
||||
this->vprntf (category, func, fmt, ap);
|
||||
}
|
||||
|
||||
extern "C" void
|
||||
strace_printf (unsigned category, const char *func, const char *fmt, ...)
|
||||
{
|
||||
va_list ap;
|
||||
|
||||
if ((category & _STRACE_SYSTEM) || strace.active)
|
||||
{
|
||||
va_start (ap, fmt);
|
||||
strace.vprntf (category, func, fmt, ap);
|
||||
}
|
||||
}
|
||||
|
||||
static NO_COPY const struct tab
|
||||
{
|
||||
int v;
|
||||
|
Reference in New Issue
Block a user