From 1729cc05afc10bb5b367f89c968cf9f55dfcf59f Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Sat, 25 Nov 2017 11:47:17 +0100 Subject: [PATCH] krnl386: Use the magic format string prefix for relay traces. Signed-off-by: Alexandre Julliard --- dlls/krnl386.exe16/dosvm.c | 4 +- dlls/krnl386.exe16/interrupts.c | 4 +- dlls/krnl386.exe16/relay.c | 67 +++++++++++++++------------------ dlls/krnl386.exe16/snoop.c | 24 ++++++------ dlls/krnl386.exe16/wowthunk.c | 46 +++++++++++----------- 5 files changed, 67 insertions(+), 78 deletions(-) diff --git a/dlls/krnl386.exe16/dosvm.c b/dlls/krnl386.exe16/dosvm.c index 4e76215a5b4..0439824f8f0 100644 --- a/dlls/krnl386.exe16/dosvm.c +++ b/dlls/krnl386.exe16/dosvm.c @@ -558,7 +558,7 @@ static LONG WINAPI exception_handler(EXCEPTION_POINTERS *eptr) switch(rec->ExceptionCode) { case EXCEPTION_VM86_INTx: - TRACE_(relay)("Call DOS int 0x%02x ret=%04x:%04x\n" + TRACE_(relay)("\1Call DOS int 0x%02x ret=%04x:%04x\n" " eax=%08x ebx=%08x ecx=%08x edx=%08x esi=%08x edi=%08x\n" " ebp=%08x esp=%08x ds=%04x es=%04x fs=%04x gs=%04x flags=%08x\n", arg, context->SegCs, context->Eip, @@ -566,7 +566,7 @@ static LONG WINAPI exception_handler(EXCEPTION_POINTERS *eptr) context->Ebp, context->Esp, context->SegDs, context->SegEs, context->SegFs, context->SegGs, context->EFlags ); ret = DOSVM_EmulateInterruptRM( context, arg ); - TRACE_(relay)("Ret DOS int 0x%02x ret=%04x:%04x\n" + TRACE_(relay)("\1Ret DOS int 0x%02x ret=%04x:%04x\n" " eax=%08x ebx=%08x ecx=%08x edx=%08x esi=%08x edi=%08x\n" " ebp=%08x esp=%08x ds=%04x es=%04x fs=%04x gs=%04x flags=%08x\n", arg, context->SegCs, context->Eip, diff --git a/dlls/krnl386.exe16/interrupts.c b/dlls/krnl386.exe16/interrupts.c index e0466808e28..57c470ed3ae 100644 --- a/dlls/krnl386.exe16/interrupts.c +++ b/dlls/krnl386.exe16/interrupts.c @@ -261,7 +261,7 @@ static void DOSVM_PushFlags( CONTEXT *context, BOOL islong, BOOL isstub ) */ BOOL DOSVM_EmulateInterruptPM( CONTEXT *context, BYTE intnum ) { - TRACE_(relay)("Call DOS int 0x%02x ret=%04x:%08x\n" + TRACE_(relay)("\1Call DOS int 0x%02x ret=%04x:%08x\n" " eax=%08x ebx=%08x ecx=%08x edx=%08x\n" " esi=%08x edi=%08x ebp=%08x esp=%08x\n" " ds=%04x es=%04x fs=%04x gs=%04x ss=%04x flags=%08x\n", @@ -450,7 +450,7 @@ void DOSVM_HardwareInterruptPM( CONTEXT *context, BYTE intnum ) */ BOOL DOSVM_EmulateInterruptRM( CONTEXT *context, BYTE intnum ) { - TRACE_(relay)("Call DOS int 0x%02x ret=%04x:%08x\n" + TRACE_(relay)("\1Call DOS int 0x%02x ret=%04x:%08x\n" " eax=%08x ebx=%08x ecx=%08x edx=%08x\n" " esi=%08x edi=%08x ebp=%08x esp=%08x\n" " ds=%04x es=%04x fs=%04x gs=%04x ss=%04x flags=%08x\n", diff --git a/dlls/krnl386.exe16/relay.c b/dlls/krnl386.exe16/relay.c index 9c8629a6d36..f1fbc57a0f4 100644 --- a/dlls/krnl386.exe16/relay.c +++ b/dlls/krnl386.exe16/relay.c @@ -446,7 +446,7 @@ int relay_call_from_16( void *entry_point, unsigned char *args16, CONTEXT *conte if (!TRACE_ON(relay) || !RELAY_ShowDebugmsgRelay( module, ordinal, func )) return relay_call_from_16_no_debug( entry_point, args16, context, call ); - DPRINTF( "%04x:Call %s.%d: %s(",GetCurrentThreadId(), module, ordinal, func ); + TRACE( "\1Call %s.%d: %s(", module, ordinal, func ); /* look for the ret instruction */ for (j = 0; j < sizeof(call->ret)/sizeof(call->ret[0]); j++) @@ -459,43 +459,42 @@ int relay_call_from_16( void *entry_point, unsigned char *args16, CONTEXT *conte int type = (call->arg_types[i / 10] >> (3 * (i % 10))) & 7; if (type == ARG_NONE) break; - if (i) DPRINTF( "," ); + if (i) TRACE( "," ); switch(type) { case ARG_WORD: - DPRINTF( "%04x", *(WORD *)args16 ); + TRACE( "%04x", *(WORD *)args16 ); args32[nb_args] = *(WORD *)args16; args16 += sizeof(WORD); break; case ARG_SWORD: - DPRINTF( "%04x", *(WORD *)args16 ); + TRACE( "%04x", *(WORD *)args16 ); args32[nb_args] = *(short *)args16; args16 += sizeof(WORD); break; case ARG_LONG: - DPRINTF( "%08x", *(int *)args16 ); + TRACE( "%08x", *(int *)args16 ); args32[nb_args] = *(int *)args16; args16 += sizeof(int); break; case ARG_PTR: - DPRINTF( "%04x:%04x", *(WORD *)(args16+2), *(WORD *)args16 ); + TRACE( "%04x:%04x", *(WORD *)(args16+2), *(WORD *)args16 ); args32[nb_args] = (int)MapSL( *(SEGPTR *)args16 ); args16 += sizeof(SEGPTR); break; case ARG_STR: - DPRINTF( "%08x %s", *(int *)args16, - debugstr_a( MapSL(*(SEGPTR *)args16 ))); + TRACE( "%08x %s", *(int *)args16, debugstr_a( MapSL(*(SEGPTR *)args16 ))); args32[nb_args] = (int)MapSL( *(SEGPTR *)args16 ); args16 += sizeof(int); break; case ARG_SEGSTR: - DPRINTF( "%04x:%04x %s", *(WORD *)(args16+2), *(WORD *)args16, - debugstr_a( MapSL(*(SEGPTR *)args16 )) ); + TRACE( "%04x:%04x %s", *(WORD *)(args16+2), *(WORD *)args16, + debugstr_a( MapSL(*(SEGPTR *)args16 )) ); args32[nb_args] = *(SEGPTR *)args16; args16 += sizeof(SEGPTR); break; case ARG_VARARG: - DPRINTF( "..." ); + TRACE( "..." ); args32[nb_args] = (int)args16; break; default: @@ -512,43 +511,42 @@ int relay_call_from_16( void *entry_point, unsigned char *args16, CONTEXT *conte int type = (call->arg_types[i / 10] >> (3 * (i % 10))) & 7; if (type == ARG_NONE) break; - if (i) DPRINTF( "," ); + if (i) TRACE( "," ); switch(type) { case ARG_WORD: args16 -= sizeof(WORD); args32[nb_args] = *(WORD *)args16; - DPRINTF( "%04x", *(WORD *)args16 ); + TRACE( "%04x", *(WORD *)args16 ); break; case ARG_SWORD: args16 -= sizeof(WORD); args32[nb_args] = *(short *)args16; - DPRINTF( "%04x", *(WORD *)args16 ); + TRACE( "%04x", *(WORD *)args16 ); break; case ARG_LONG: args16 -= sizeof(int); args32[nb_args] = *(int *)args16; - DPRINTF( "%08x", *(int *)args16 ); + TRACE( "%08x", *(int *)args16 ); break; case ARG_PTR: args16 -= sizeof(SEGPTR); args32[nb_args] = (int)MapSL( *(SEGPTR *)args16 ); - DPRINTF( "%04x:%04x", *(WORD *)(args16+2), *(WORD *)args16 ); + TRACE( "%04x:%04x", *(WORD *)(args16+2), *(WORD *)args16 ); break; case ARG_STR: args16 -= sizeof(int); args32[nb_args] = (int)MapSL( *(SEGPTR *)args16 ); - DPRINTF( "%08x %s", *(int *)args16, - debugstr_a( MapSL(*(SEGPTR *)args16 ))); + TRACE( "%08x %s", *(int *)args16, debugstr_a( MapSL(*(SEGPTR *)args16 ))); break; case ARG_SEGSTR: args16 -= sizeof(SEGPTR); args32[nb_args] = *(SEGPTR *)args16; - DPRINTF( "%04x:%04x %s", *(WORD *)(args16+2), *(WORD *)args16, - debugstr_a( MapSL(*(SEGPTR *)args16 )) ); + TRACE( "%04x:%04x %s", *(WORD *)(args16+2), *(WORD *)args16, + debugstr_a( MapSL(*(SEGPTR *)args16 )) ); break; case ARG_VARARG: - DPRINTF( "..." ); + TRACE( "..." ); args32[nb_args] = (int)args16; break; default: @@ -557,16 +555,15 @@ int relay_call_from_16( void *entry_point, unsigned char *args16, CONTEXT *conte } } - DPRINTF( ") ret=%04x:%04x ds=%04x\n", frame->cs, frame->ip, frame->ds ); - if (!j) /* register function */ { args32[nb_args++] = (int)context; - DPRINTF(" AX=%04x BX=%04x CX=%04x DX=%04x SI=%04x DI=%04x ES=%04x EFL=%08x\n", - (WORD)context->Eax, (WORD)context->Ebx, (WORD)context->Ecx, - (WORD)context->Edx, (WORD)context->Esi, (WORD)context->Edi, - (WORD)context->SegEs, context->EFlags ); + TRACE( ") ret=%04x:%04x ax=%04x bx=%04x cx=%04x dx=%04x si=%04x di=%04x ds=%04x es=%04x efl=%08x\n", + frame->cs, frame->ip, (WORD)context->Eax, (WORD)context->Ebx, (WORD)context->Ecx, + (WORD)context->Edx, (WORD)context->Esi, (WORD)context->Edi, (WORD)context->SegDs, + (WORD)context->SegEs, context->EFlags ); } + else TRACE( ") ret=%04x:%04x ds=%04x\n", frame->cs, frame->ip, frame->ds ); SYSLEVEL_CheckNotLevel( 2 ); @@ -574,24 +571,22 @@ int relay_call_from_16( void *entry_point, unsigned char *args16, CONTEXT *conte SYSLEVEL_CheckNotLevel( 2 ); - DPRINTF( "%04x:Ret %s.%d: %s() ",GetCurrentThreadId(), module, ordinal, func ); + TRACE( "\1Ret %s.%d: %s() ", module, ordinal, func ); if (!j) /* register function */ { - DPRINTF("retval=none ret=%04x:%04x ds=%04x\n", - (WORD)context->SegCs, LOWORD(context->Eip), (WORD)context->SegDs); - DPRINTF(" AX=%04x BX=%04x CX=%04x DX=%04x SI=%04x DI=%04x ES=%04x EFL=%08x\n", - (WORD)context->Eax, (WORD)context->Ebx, (WORD)context->Ecx, - (WORD)context->Edx, (WORD)context->Esi, (WORD)context->Edi, - (WORD)context->SegEs, context->EFlags ); + TRACE( "retval=none ret=%04x:%04x ax=%04x bx=%04x cx=%04x dx=%04x si=%04x di=%04x ds=%04x es=%04x efl=%08x\n", + (WORD)context->SegCs, LOWORD(context->Eip), (WORD)context->Eax, (WORD)context->Ebx, + (WORD)context->Ecx, (WORD)context->Edx, (WORD)context->Esi, (WORD)context->Edi, + (WORD)context->SegDs, (WORD)context->SegEs, context->EFlags ); } else { frame = CURRENT_STACK16; /* might have be changed by the entry point */ if (j == 1) /* 16-bit return sequence */ - DPRINTF( "retval=%04x ret=%04x:%04x ds=%04x\n", + TRACE( "retval=%04x ret=%04x:%04x ds=%04x\n", ret_val & 0xffff, frame->cs, frame->ip, frame->ds ); else - DPRINTF( "retval=%08x ret=%04x:%04x ds=%04x\n", + TRACE( "retval=%08x ret=%04x:%04x ds=%04x\n", ret_val, frame->cs, frame->ip, frame->ds ); } return ret_val; diff --git a/dlls/krnl386.exe16/snoop.c b/dlls/krnl386.exe16/snoop.c index cef0fda7395..95a5154a4b0 100644 --- a/dlls/krnl386.exe16/snoop.c +++ b/dlls/krnl386.exe16/snoop.c @@ -289,20 +289,20 @@ static void WINAPI SNOOP16_Entry(FARPROC proc, LPBYTE args, CONTEXT *context) { context->SegCs = HIWORD(fun->origfun); - DPRINTF("%04x:CALL %s.%d: %s(",GetCurrentThreadId(), dll->name,ordinal,fun->name); + TRACE("\1CALL %s.%d: %s(", dll->name, ordinal, fun->name); if (fun->nrofargs>0) { max = fun->nrofargs; if (max>16) max=16; for (i=max;i--;) - DPRINTF("%04x%s",*(WORD*)((char *) MapSL( MAKESEGPTR(context->SegSs,LOWORD(context->Esp)) )+8+sizeof(WORD)*i),i?",":""); + TRACE("%04x%s",*(WORD*)((char *) MapSL( MAKESEGPTR(context->SegSs,LOWORD(context->Esp)) )+8+sizeof(WORD)*i),i?",":""); if (max!=fun->nrofargs) - DPRINTF(" ..."); + TRACE(" ..."); } else if (fun->nrofargs<0) { - DPRINTF(""); + TRACE(""); ret->args = HeapAlloc(GetProcessHeap(),0,16*sizeof(WORD)); memcpy(ret->args,(LPBYTE)((char *) MapSL( MAKESEGPTR(context->SegSs,LOWORD(context->Esp)) )+8),sizeof(WORD)*16); } - DPRINTF(") ret=%04x:%04x\n",HIWORD(ret->origreturn),LOWORD(ret->origreturn)); + TRACE(") ret=%04x:%04x\n",HIWORD(ret->origreturn),LOWORD(ret->origreturn)); } static void WINAPI SNOOP16_Return(FARPROC proc, LPBYTE args, CONTEXT *context) { @@ -318,9 +318,7 @@ static void WINAPI SNOOP16_Return(FARPROC proc, LPBYTE args, CONTEXT *context) { } context->Eip = LOWORD(ret->origreturn); context->SegCs = HIWORD(ret->origreturn); - DPRINTF("%04x:RET %s.%d: %s(", - GetCurrentThreadId(),ret->dll->name,ret->ordinal, - ret->dll->funs[ret->ordinal].name); + TRACE("\1RET %s.%d: %s(", ret->dll->name, ret->ordinal, ret->dll->funs[ret->ordinal].name); if (ret->args) { int i,max; @@ -331,14 +329,14 @@ static void WINAPI SNOOP16_Return(FARPROC proc, LPBYTE args, CONTEXT *context) { max=0; for (i=max;i--;) - DPRINTF("%04x%s",ret->args[i],i?",":""); + TRACE("%04x%s",ret->args[i],i?",":""); if (max!=ret->dll->funs[ret->ordinal].nrofargs) - DPRINTF(" ..."); + TRACE(" ..."); HeapFree(GetProcessHeap(),0,ret->args); ret->args = NULL; } - DPRINTF(") retval = %04x:%04x ret=%04x:%04x\n", - (WORD)context->Edx,(WORD)context->Eax, - HIWORD(ret->origreturn),LOWORD(ret->origreturn)); + TRACE(") retval = %04x:%04x ret=%04x:%04x\n", + (WORD)context->Edx,(WORD)context->Eax, + HIWORD(ret->origreturn),LOWORD(ret->origreturn)); ret->origreturn = NULL; /* mark as empty */ } diff --git a/dlls/krnl386.exe16/wowthunk.c b/dlls/krnl386.exe16/wowthunk.c index fa49a246ab8..539bc74eea0 100644 --- a/dlls/krnl386.exe16/wowthunk.c +++ b/dlls/krnl386.exe16/wowthunk.c @@ -538,16 +538,14 @@ BOOL WINAPI K32WOWCallback16Ex( DWORD vpfn16, DWORD dwFlags, DWORD count = cbArgs / sizeof(WORD); WORD * wstack = (WORD *)stack; - DPRINTF("%04x:CallTo16(func=%04x:%04x,ds=%04x", - GetCurrentThreadId(), - context->SegCs, LOWORD(context->Eip), context->SegDs ); - while (count) DPRINTF( ",%04x", wstack[--count] ); - DPRINTF(") ss:sp=%04x:%04x", - SELECTOROF(NtCurrentTeb()->WOW32Reserved), OFFSETOF(NtCurrentTeb()->WOW32Reserved) ); - DPRINTF(" ax=%04x bx=%04x cx=%04x dx=%04x si=%04x di=%04x bp=%04x es=%04x fs=%04x\n", - (WORD)context->Eax, (WORD)context->Ebx, (WORD)context->Ecx, - (WORD)context->Edx, (WORD)context->Esi, (WORD)context->Edi, - (WORD)context->Ebp, (WORD)context->SegEs, (WORD)context->SegFs ); + TRACE_(relay)( "\1CallTo16(func=%04x:%04x", context->SegCs, LOWORD(context->Eip) ); + while (count) TRACE_(relay)( ",%04x", wstack[--count] ); + TRACE_(relay)( ") ss:sp=%04x:%04x ax=%04x bx=%04x cx=%04x dx=%04x si=%04x di=%04x bp=%04x ds=%04x es=%04x\n", + SELECTOROF(NtCurrentTeb()->WOW32Reserved), + OFFSETOF(NtCurrentTeb()->WOW32Reserved), + (WORD)context->Eax, (WORD)context->Ebx, (WORD)context->Ecx, + (WORD)context->Edx, (WORD)context->Esi, (WORD)context->Edi, + (WORD)context->Ebp, (WORD)context->SegDs, (WORD)context->SegEs ); SYSLEVEL_CheckNotLevel( 2 ); } @@ -607,12 +605,11 @@ BOOL WINAPI K32WOWCallback16Ex( DWORD vpfn16, DWORD dwFlags, if (TRACE_ON(relay)) { - DPRINTF("%04x:RetFrom16() ss:sp=%04x:%04x ", - GetCurrentThreadId(), SELECTOROF(NtCurrentTeb()->WOW32Reserved), - OFFSETOF(NtCurrentTeb()->WOW32Reserved)); - DPRINTF(" ax=%04x bx=%04x cx=%04x dx=%04x bp=%04x sp=%04x\n", - (WORD)context->Eax, (WORD)context->Ebx, (WORD)context->Ecx, - (WORD)context->Edx, (WORD)context->Ebp, (WORD)context->Esp ); + TRACE_(relay)( "\1RetFrom16() ss:sp=%04x:%04x ax=%04x bx=%04x cx=%04x dx=%04x bp=%04x sp=%04x\n", + SELECTOROF(NtCurrentTeb()->WOW32Reserved), + OFFSETOF(NtCurrentTeb()->WOW32Reserved), + (WORD)context->Eax, (WORD)context->Ebx, (WORD)context->Ecx, + (WORD)context->Edx, (WORD)context->Ebp, (WORD)context->Esp ); SYSLEVEL_CheckNotLevel( 2 ); } } @@ -625,12 +622,11 @@ BOOL WINAPI K32WOWCallback16Ex( DWORD vpfn16, DWORD dwFlags, DWORD count = cbArgs / sizeof(WORD); WORD * wstack = (WORD *)stack; - DPRINTF("%04x:CallTo16(func=%04x:%04x,ds=%04x", - GetCurrentThreadId(), HIWORD(vpfn16), LOWORD(vpfn16), - SELECTOROF(NtCurrentTeb()->WOW32Reserved) ); - while (count) DPRINTF( ",%04x", wstack[--count] ); - DPRINTF(") ss:sp=%04x:%04x\n", - SELECTOROF(NtCurrentTeb()->WOW32Reserved), OFFSETOF(NtCurrentTeb()->WOW32Reserved) ); + TRACE_(relay)( "\1CallTo16(func=%04x:%04x,ds=%04x", + HIWORD(vpfn16), LOWORD(vpfn16), SELECTOROF(NtCurrentTeb()->WOW32Reserved) ); + while (count) TRACE_(relay)( ",%04x", wstack[--count] ); + TRACE_(relay)( ") ss:sp=%04x:%04x\n", SELECTOROF(NtCurrentTeb()->WOW32Reserved), + OFFSETOF(NtCurrentTeb()->WOW32Reserved) ); SYSLEVEL_CheckNotLevel( 2 ); } @@ -652,9 +648,9 @@ BOOL WINAPI K32WOWCallback16Ex( DWORD vpfn16, DWORD dwFlags, if (TRACE_ON(relay)) { - DPRINTF("%04x:RetFrom16() ss:sp=%04x:%04x retval=%08x\n", - GetCurrentThreadId(), SELECTOROF(NtCurrentTeb()->WOW32Reserved), - OFFSETOF(NtCurrentTeb()->WOW32Reserved), ret); + TRACE_(relay)( "\1RetFrom16() ss:sp=%04x:%04x retval=%08x\n", + SELECTOROF(NtCurrentTeb()->WOW32Reserved), + OFFSETOF(NtCurrentTeb()->WOW32Reserved), ret ); SYSLEVEL_CheckNotLevel( 2 ); } }