summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/strace.cc
diff options
context:
space:
mode:
Diffstat (limited to 'winsup/cygwin/strace.cc')
-rw-r--r--winsup/cygwin/strace.cc25
1 files changed, 22 insertions, 3 deletions
diff --git a/winsup/cygwin/strace.cc b/winsup/cygwin/strace.cc
index d13596ea4..0b908a7d3 100644
--- a/winsup/cygwin/strace.cc
+++ b/winsup/cygwin/strace.cc
@@ -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;