- Get rid of sprintf usage in default_dbg_vprintf.

- This make tracing macro usage safe in crt sprintf implementation and simplify overall codepath (no need for intermediate buffer).
- Solution inspired by hackbunny's suggestion, fixes bug 3632.
- Add vDbgPrintExWithPrefix to debugsup libraries.
See issue #3632 for more details.

svn path=/trunk/; revision=36323
This commit is contained in:
Aleksey Bragin 2008-09-19 10:35:30 +00:00
parent b4572ba562
commit f1c91f140d
2 changed files with 10 additions and 9 deletions

View file

@ -36,11 +36,14 @@
#include <cmfuncs.h>
ULONG
__cdecl
DbgPrint(
IN PCCH Format,
IN ...
);
NTAPI
vDbgPrintExWithPrefix(
IN LPCSTR Prefix,
IN ULONG ComponentId,
IN ULONG Level,
IN LPCSTR Format,
IN va_list ap);
static const char * const debug_classes[] = { "fixme", "err", "warn", "trace" };
@ -387,10 +390,7 @@ static const char *default_dbgstr_wn( const WCHAR *str, int n )
/* default implementation of wine_dbg_vprintf */
static int default_dbg_vprintf( const char *format, va_list args )
{
char buffer[512];
vsnprintf( buffer, sizeof(buffer), format, args );
buffer[sizeof(buffer) - 1] = '\0';
return DbgPrint( "%s", buffer );
return vDbgPrintExWithPrefix("", -1, 0, format, args);
}

View file

@ -4,6 +4,7 @@ DbgBreakPointWithStatus@4
DbgPrint
DbgPrompt@12
DbgPrintEx
vDbgPrintExWithPrefix@20
RtlAssert@16
RtlUnwind@16