X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=util%2Ftracediff;h=f11431293df0a8bca2b1403a1c0900dce464993f;hb=690399614c3bc9ee46bee2a86b9558efbbf3b51a;hp=fac4f0ec0926d4c26f4d73a33edc0aeca9efafe9;hpb=166def1f5663bda1766b003fab4c46bc905fdb8d;p=gem5.git diff --git a/util/tracediff b/util/tracediff index fac4f0ec0..f11431293 100755 --- a/util/tracediff +++ b/util/tracediff @@ -1,5 +1,5 @@ #! /usr/bin/env perl -# Copyright (c) 2003 The Regents of The University of Michigan +# Copyright (c) 2003-2005 The Regents of The University of Michigan # All rights reserved. # # Redistribution and use in source and binary forms, with or without @@ -27,10 +27,20 @@ # # Authors: Steve Reinhardt -# Script to simplify using rundiff on trace outputs from two invocations of m5. +# Script to simplify using rundiff on trace outputs from two +# invocations of m5. +# +# ******Note that you need to enable some trace flags in the args in order +# to do anything useful!****** +# +# If you want to pass different arguments to the two instances of m5, +# you can embed them in the simulator arguments like this: +# +# % tracediff "m5.opt --foo.bar=1" "m5.opt --foo.bar=2" [common args] +# if (@ARGV < 2) { - die "Usage: tracediff sim1 sim2 [args...]\n"; + die "Usage: tracediff sim1 sim2 [--root.trace.flags=X args...]\n"; } # First two args are the two simulator binaries to compare @@ -39,10 +49,17 @@ $sim2 = shift; # Everything else on the command line is taken to be an m5 argument to # be given to both invocations -$simargs = join(' ', @ARGV); +$simargs = '"' . join('" "', @ARGV) . '"'; + +# Run individual invocations in separate dirs so output and intermediate +# files (particularly config.py and config.ini) don't conflict. +$dir1 = "tracediff-$$-1"; +$dir2 = "tracediff-$$-2"; +mkdir($dir1) or die "Can't create dir $dir1\n"; +mkdir($dir2) or die "Can't create dir $dir2\n"; -$cmd1 = "$sim1 $simargs --stats:file=tracediff-$$-1.stats 2>&1 |"; -$cmd2 = "$sim2 $simargs --stats:file=tracediff-$$-2.stats 2>&1 |"; +$cmd1 = "$sim1 $simargs -d $dir1 2>&1 |"; +$cmd2 = "$sim2 $simargs -d $dir2 2>&1 |"; # This only works if you have rundiff in your path. I just edit it # with an explicit path if necessary.