server: More generic mechanism for adding typecasts in server traces.
Added casts for size_t values.
diff --git a/server/trace.c b/server/trace.c
index 96cecb1..fc5f4f3 100644
--- a/server/trace.c
+++ b/server/trace.c
@@ -639,7 +639,7 @@
static void dump_init_process_done_request( const struct init_process_done_request *req )
{
fprintf( stderr, " module=%p,", req->module );
- fprintf( stderr, " module_size=%d,", req->module_size );
+ fprintf( stderr, " module_size=%lu,", (unsigned long)req->module_size );
fprintf( stderr, " entry=%p,", req->entry );
fprintf( stderr, " name=%p,", req->name );
fprintf( stderr, " exe_file=%p,", req->exe_file );
@@ -665,7 +665,7 @@
{
fprintf( stderr, " pid=%04x,", req->pid );
fprintf( stderr, " tid=%04x,", req->tid );
- fprintf( stderr, " info_size=%d,", req->info_size );
+ fprintf( stderr, " info_size=%lu,", (unsigned long)req->info_size );
fprintf( stderr, " server_start=%ld,", (long)req->server_start );
fprintf( stderr, " version=%d", req->version );
}
@@ -751,7 +751,7 @@
static void dump_get_dll_info_reply( const struct get_dll_info_reply *req )
{
- fprintf( stderr, " size=%d,", req->size );
+ fprintf( stderr, " size=%lu,", (unsigned long)req->size );
fprintf( stderr, " entry_point=%p,", req->entry_point );
fprintf( stderr, " filename=" );
dump_varargs_unicode_str( cur_size );
@@ -781,7 +781,7 @@
{
fprintf( stderr, " handle=%p,", req->handle );
fprintf( stderr, " base=%p,", req->base );
- fprintf( stderr, " size=%d,", req->size );
+ fprintf( stderr, " size=%lu,", (unsigned long)req->size );
fprintf( stderr, " dbg_offset=%d,", req->dbg_offset );
fprintf( stderr, " dbg_size=%d,", req->dbg_size );
fprintf( stderr, " name=%p,", req->name );
@@ -1569,7 +1569,7 @@
{
fprintf( stderr, " pid=%04x,", req->pid );
fprintf( stderr, " base=%p,", req->base );
- fprintf( stderr, " size=%d,", req->size );
+ fprintf( stderr, " size=%lu,", (unsigned long)req->size );
fprintf( stderr, " filename=" );
dump_varargs_unicode_str( cur_size );
}
@@ -1675,7 +1675,7 @@
fprintf( stderr, " attributes=%08x,", req->attributes );
fprintf( stderr, " options=%08x,", req->options );
fprintf( stderr, " modif=%ld,", (long)req->modif );
- fprintf( stderr, " namelen=%d,", req->namelen );
+ fprintf( stderr, " namelen=%lu,", (unsigned long)req->namelen );
fprintf( stderr, " name=" );
dump_varargs_unicode_str( min(cur_size,req->namelen) );
fputc( ',', stderr );
@@ -1729,8 +1729,8 @@
fprintf( stderr, " max_value=%d,", req->max_value );
fprintf( stderr, " max_data=%d,", req->max_data );
fprintf( stderr, " modif=%ld,", (long)req->modif );
- fprintf( stderr, " total=%d,", req->total );
- fprintf( stderr, " namelen=%d,", req->namelen );
+ fprintf( stderr, " total=%lu,", (unsigned long)req->total );
+ fprintf( stderr, " namelen=%lu,", (unsigned long)req->namelen );
fprintf( stderr, " name=" );
dump_varargs_unicode_str( min(cur_size,req->namelen) );
fputc( ',', stderr );
@@ -1742,7 +1742,7 @@
{
fprintf( stderr, " hkey=%p,", req->hkey );
fprintf( stderr, " type=%d,", req->type );
- fprintf( stderr, " namelen=%d,", req->namelen );
+ fprintf( stderr, " namelen=%lu,", (unsigned long)req->namelen );
fprintf( stderr, " name=" );
dump_varargs_unicode_str( min(cur_size,req->namelen) );
fputc( ',', stderr );
@@ -1760,7 +1760,7 @@
static void dump_get_key_value_reply( const struct get_key_value_reply *req )
{
fprintf( stderr, " type=%d,", req->type );
- fprintf( stderr, " total=%d,", req->total );
+ fprintf( stderr, " total=%lu,", (unsigned long)req->total );
fprintf( stderr, " data=" );
dump_varargs_bytes( cur_size );
}
@@ -1775,8 +1775,8 @@
static void dump_enum_key_value_reply( const struct enum_key_value_reply *req )
{
fprintf( stderr, " type=%d,", req->type );
- fprintf( stderr, " total=%d,", req->total );
- fprintf( stderr, " namelen=%d,", req->namelen );
+ fprintf( stderr, " total=%lu,", (unsigned long)req->total );
+ fprintf( stderr, " namelen=%lu,", (unsigned long)req->namelen );
fprintf( stderr, " name=" );
dump_varargs_unicode_str( min(cur_size,req->namelen) );
fputc( ',', stderr );
@@ -1967,7 +1967,7 @@
{
fprintf( stderr, " count=%d,", req->count );
fprintf( stderr, " pinned=%d,", req->pinned );
- fprintf( stderr, " total=%d,", req->total );
+ fprintf( stderr, " total=%lu,", (unsigned long)req->total );
fprintf( stderr, " name=" );
dump_varargs_unicode_str( cur_size );
}
@@ -2087,7 +2087,7 @@
fprintf( stderr, " info=%08x,", req->info );
fprintf( stderr, " hw_id=%08x,", req->hw_id );
fprintf( stderr, " active_hooks=%08x,", req->active_hooks );
- fprintf( stderr, " total=%d,", req->total );
+ fprintf( stderr, " total=%lu,", (unsigned long)req->total );
fprintf( stderr, " data=" );
dump_varargs_bytes( cur_size );
}
@@ -2326,7 +2326,7 @@
fprintf( stderr, " is_unicode=%d,", req->is_unicode );
fprintf( stderr, " user_data=%p,", req->user_data );
fprintf( stderr, " extra_offset=%d,", req->extra_offset );
- fprintf( stderr, " extra_size=%d,", req->extra_size );
+ fprintf( stderr, " extra_size=%lu,", (unsigned long)req->extra_size );
fprintf( stderr, " extra_value=%08x", req->extra_value );
}
@@ -2489,7 +2489,7 @@
fprintf( stderr, " top_org_y=%d,", req->top_org_y );
fprintf( stderr, " win_org_x=%d,", req->win_org_x );
fprintf( stderr, " win_org_y=%d,", req->win_org_y );
- fprintf( stderr, " total_size=%d,", req->total_size );
+ fprintf( stderr, " total_size=%lu,", (unsigned long)req->total_size );
fprintf( stderr, " region=" );
dump_varargs_rectangles( cur_size );
}
@@ -2501,7 +2501,7 @@
static void dump_get_window_region_reply( const struct get_window_region_reply *req )
{
- fprintf( stderr, " total_size=%d,", req->total_size );
+ fprintf( stderr, " total_size=%lu,", (unsigned long)req->total_size );
fprintf( stderr, " region=" );
dump_varargs_rectangles( cur_size );
}
@@ -2524,7 +2524,7 @@
{
fprintf( stderr, " child=%p,", req->child );
fprintf( stderr, " flags=%08x,", req->flags );
- fprintf( stderr, " total_size=%d,", req->total_size );
+ fprintf( stderr, " total_size=%lu,", (unsigned long)req->total_size );
fprintf( stderr, " region=" );
dump_varargs_rectangles( cur_size );
}
@@ -2946,7 +2946,7 @@
fprintf( stderr, " win_extra=%d,", req->win_extra );
fprintf( stderr, " instance=%p,", req->instance );
fprintf( stderr, " extra_offset=%d,", req->extra_offset );
- fprintf( stderr, " extra_size=%d,", req->extra_size );
+ fprintf( stderr, " extra_size=%lu,", (unsigned long)req->extra_size );
fprintf( stderr, " extra_value=%08x", req->extra_value );
}
@@ -3093,7 +3093,7 @@
static void dump_get_token_user_reply( const struct get_token_user_reply *req )
{
- fprintf( stderr, " user_len=%d,", req->user_len );
+ fprintf( stderr, " user_len=%lu,", (unsigned long)req->user_len );
fprintf( stderr, " user=" );
dump_varargs_SID( cur_size );
}
@@ -3177,7 +3177,7 @@
fprintf( stderr, " access=%08x,", req->access );
fprintf( stderr, " attributes=%08x,", req->attributes );
fprintf( stderr, " rootdir=%p,", req->rootdir );
- fprintf( stderr, " name_len=%d,", req->name_len );
+ fprintf( stderr, " name_len=%lu,", (unsigned long)req->name_len );
fprintf( stderr, " name=" );
dump_varargs_unicode_str( min(cur_size,req->name_len) );
fputc( ',', stderr );
diff --git a/tools/make_requests b/tools/make_requests
index 4a89a23..97b1fc9 100755
--- a/tools/make_requests
+++ b/tools/make_requests
@@ -30,8 +30,8 @@
"unsigned short"=> "%04x",
"unsigned int" => "%08x",
"void*" => "%p",
- "time_t" => "%ld",
- "size_t" => "%d",
+ "time_t" => "%ld (long)",
+ "size_t" => "%lu (unsigned long)",
"obj_handle_t" => "%p",
"atom_t" => "%04x",
"user_handle_t" => "%p",
@@ -69,15 +69,18 @@
push @trace_lines, " $func( &req->$var );\n";
push @trace_lines, " fprintf( stderr, \",\" );\n" if ($#_ > 0);
}
+ elsif ($formats{$type} =~ /^(%.*)\s+\((.*)\)/)
+ {
+ my ($format, $cast) = ($1, $2);
+ push @trace_lines, " fprintf( stderr, \" $var=$format";
+ push @trace_lines, "," if ($#_ > 0);
+ push @trace_lines, "\", ($cast)req->$var );\n";
+ }
else
{
push @trace_lines, " fprintf( stderr, \" $var=$formats{$type}";
push @trace_lines, "," if ($#_ > 0);
- push @trace_lines, "\", ";
- # In the case of time_t we need to cast the parameter to
- # long to match the associated "%ld" printf modifier.
- push @trace_lines, "(long)" if( $type eq "time_t" );
- push @trace_lines, "req->$var );\n";
+ push @trace_lines, "\", req->$var );\n";
}
}
else # must be some varargs format