X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=util%2Ftracediff;h=f2377a9993c6ba5f92fe13a3cd31a847987685f0;hb=1345183a89a148bf48110c4559448dd708549252;hp=fac4f0ec0926d4c26f4d73a33edc0aeca9efafe9;hpb=045eac3bdf9a12f64138dbef501b0b77468ac1c5;p=gem5.git diff --git a/util/tracediff b/util/tracediff index fac4f0ec0..f2377a999 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-2006 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 --option1" "m5.opt --option2" [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 -d $dir1 $simargs 2>&1 |"; +$cmd2 = "$sim2 -d $dir2 $simargs 2>&1 |"; # This only works if you have rundiff in your path. I just edit it # with an explicit path if necessary.