server: Make all dump function take a prefix string to simplify the tracing code.

This commit is contained in:
Alexandre Julliard 2009-04-03 18:02:21 +02:00
parent 75857d7d67
commit 53929f1906
2 changed files with 1202 additions and 1599 deletions

File diff suppressed because it is too large Load Diff

View File

@ -69,6 +69,7 @@ sub DO_DUMP_FUNC($$@)
{ {
my $name = shift; my $name = shift;
my $req = shift; my $req = shift;
my $prefix = " ";
push @trace_lines, "static void dump_${name}_$req( const struct ${name}_$req *req )\n{\n"; push @trace_lines, "static void dump_${name}_$req( const struct ${name}_$req *req )\n{\n";
while ($#_ >= 0) while ($#_ >= 0)
{ {
@ -81,31 +82,23 @@ sub DO_DUMP_FUNC($$@)
if ($fmt =~ /^&(.*)/) if ($fmt =~ /^&(.*)/)
{ {
my $func = $1; my $func = $1;
push @trace_lines, " fprintf( stderr, \" $var=\" );\n"; push @trace_lines, " $func( \"$prefix$var=\", &req->$var );\n";
push @trace_lines, " $func( &req->$var );\n";
push @trace_lines, " fprintf( stderr, \",\" );\n" if ($#_ > 0);
} }
elsif ($fmt =~ /^(%.*)\s+\((.*)\)/) elsif ($fmt =~ /^(%.*)\s+\((.*)\)/)
{ {
my ($format, $cast) = ($1, $2); my ($format, $cast) = ($1, $2);
push @trace_lines, " fprintf( stderr, \" $var=$format"; push @trace_lines, " fprintf( stderr, \"$prefix$var=$format\", ($cast)req->$var );\n";
push @trace_lines, "," if ($#_ > 0);
push @trace_lines, "\", ($cast)req->$var );\n";
} }
else else
{ {
push @trace_lines, " fprintf( stderr, \" $var=$fmt"; push @trace_lines, " fprintf( stderr, \"$prefix$var=$fmt\", req->$var );\n";
push @trace_lines, "," if ($#_ > 0);
push @trace_lines, "\", req->$var );\n";
} }
} }
else # must be some varargs format else # must be some varargs format
{ {
my $func = $type; push @trace_lines, " " . sprintf($type, "$prefix$var=") . ";\n";
push @trace_lines, " fprintf( stderr, \" $var=\" );\n";
push @trace_lines, " $func;\n";
push @trace_lines, " fputc( ',', stderr );\n" if ($#_ > 0);
} }
$prefix = ", ";
} }
push @trace_lines, "}\n\n"; push @trace_lines, "}\n\n";
} }
@ -215,13 +208,13 @@ sub PARSE_REQUESTS()
if (/^\s*VARARG\((\w+),(\w+),(\w+)\)/) if (/^\s*VARARG\((\w+),(\w+),(\w+)\)/)
{ {
$var = $1; $var = $1;
$type = "dump_varargs_" . $2 . "( min(cur_size,req->" . $3 . ") )"; $type = "dump_varargs_" . $2 . "( \"%s\", min(cur_size,req->" . $3 . ") )";
s!(VARARG\(.*\)\s*;)!/* $1 */!; s!(VARARG\(.*\)\s*;)!/* $1 */!;
} }
elsif (/^\s*VARARG\((\w+),(\w+)\)/) elsif (/^\s*VARARG\((\w+),(\w+)\)/)
{ {
$var = $1; $var = $1;
$type = "dump_varargs_" . $2 . "( cur_size )"; $type = "dump_varargs_" . $2 . "( \"%s\", cur_size )";
s!(VARARG\(.*\)\s*;)!/* $1 */!; s!(VARARG\(.*\)\s*;)!/* $1 */!;
} }
elsif (/^\s*(\w+\**(\s+\w+\**)*)\s+(\w+);/) elsif (/^\s*(\w+\**(\s+\w+\**)*)\s+(\w+);/)