server: Store debugging output strings as client_ptr_t instead of void pointers.

This commit is contained in:
Alexandre Julliard 2008-12-29 17:12:20 +01:00
parent 947976f22c
commit 93737d5575
4 changed files with 23 additions and 20 deletions

View File

@ -112,7 +112,7 @@ BOOL WINAPI WaitForDebugEvent(
event->u.UnloadDll.lpBaseOfDll = wine_server_get_ptr( data.info.unload_dll.base );
break;
case OUTPUT_DEBUG_STRING_EVENT:
event->u.DebugString.lpDebugStringData = data.info.output_string.string;
event->u.DebugString.lpDebugStringData = wine_server_get_ptr( data.info.output_string.string );
event->u.DebugString.fUnicode = data.info.output_string.unicode;
event->u.DebugString.nDebugStringLength = data.info.output_string.length;
break;
@ -237,7 +237,7 @@ void WINAPI OutputDebugStringA( LPCSTR str )
{
SERVER_START_REQ( output_debug_string )
{
req->string = (void *)str;
req->string = wine_server_client_ptr( str );
req->unicode = 0;
req->length = strlen(str) + 1;
wine_server_call( req );
@ -264,7 +264,7 @@ void WINAPI OutputDebugStringW( LPCWSTR str )
{
SERVER_START_REQ( output_debug_string )
{
req->string = (void *)str;
req->string = wine_server_client_ptr( str );
req->unicode = 1;
req->length = (lstrlenW(str) + 1) * sizeof(WCHAR);
wine_server_call( req );

View File

@ -97,9 +97,9 @@ struct debug_event_unload_dll
};
struct debug_event_output_string
{
void *string;
int unicode;
int length;
client_ptr_t string;
int unicode;
data_size_t length;
};
struct debug_event_rip_info
{
@ -1873,9 +1873,9 @@ struct get_exception_status_reply
struct output_debug_string_request
{
struct request_header __header;
void* string;
data_size_t length;
client_ptr_t string;
int unicode;
int length;
};
struct output_debug_string_reply
{
@ -5052,6 +5052,6 @@ union generic_reply
struct set_window_layered_info_reply set_window_layered_info_reply;
};
#define SERVER_PROTOCOL_VERSION 357
#define SERVER_PROTOCOL_VERSION 358
#endif /* __WINE_WINE_SERVER_PROTOCOL_H */

View File

@ -113,9 +113,9 @@ struct debug_event_unload_dll
};
struct debug_event_output_string
{
void *string; /* string to display (in debugged process address space) */
int unicode; /* is it Unicode? */
int length; /* string length */
client_ptr_t string; /* string to display (in debugged process address space) */
int unicode; /* is it Unicode? */
data_size_t length; /* string length */
};
struct debug_event_rip_info
{
@ -1462,9 +1462,9 @@ enum char_info_mode
/* Send an output string to the debugger */
@REQ(output_debug_string)
void* string; /* string to display (in debugged process address space) */
data_size_t length; /* string length */
client_ptr_t string; /* string to display (in debugged process address space) */
int unicode; /* is it Unicode? */
int length; /* string length */
@END

View File

@ -485,9 +485,10 @@ static void dump_varargs_debug_event( data_size_t size )
fputc( '}', stderr );
break;
case OUTPUT_DEBUG_STRING_EVENT:
fprintf( stderr, "{output_string,data=%p,unicode=%d,len=%d}",
event->info.output_string.string, event->info.output_string.unicode,
event->info.output_string.length );
fprintf( stderr, "{output_string,string=" );
dump_uint64( &event->info.output_string.string );
fprintf( stderr, ",unicode=%d,len=%u}",
event->info.output_string.unicode, event->info.output_string.length );
break;
case RIP_EVENT:
fprintf( stderr, "{rip,err=%d,type=%d}",
@ -1922,9 +1923,11 @@ static void dump_get_exception_status_reply( const struct get_exception_status_r
static void dump_output_debug_string_request( const struct output_debug_string_request *req )
{
fprintf( stderr, " string=%p,", req->string );
fprintf( stderr, " unicode=%d,", req->unicode );
fprintf( stderr, " length=%d", req->length );
fprintf( stderr, " length=%u,", req->length );
fprintf( stderr, " string=" );
dump_uint64( &req->string );
fprintf( stderr, "," );
fprintf( stderr, " unicode=%d", req->unicode );
}
static void dump_continue_debug_event_request( const struct continue_debug_event_request *req )