From 0876c822dd25e57e8811ceb31f67a3536c9855b0 Mon Sep 17 00:00:00 2001 From: Nathan Binkert Date: Mon, 19 Jan 2009 09:59:13 -0800 Subject: tracing: panic() if people try to use tracing, but TRACING_ON is not set. Also clean things up so that help strings can more easily be added. Move the help function into trace.py --- src/python/m5/main.py | 44 +++++++++++++++++++------------------------- src/python/m5/trace.py | 20 ++++++++++++++++++++ 2 files changed, 39 insertions(+), 25 deletions(-) create mode 100644 src/python/m5/trace.py (limited to 'src/python/m5') diff --git a/src/python/m5/main.py b/src/python/m5/main.py index 4853c8908..4e9714705 100644 --- a/src/python/m5/main.py +++ b/src/python/m5/main.py @@ -138,6 +138,13 @@ def main(): import event import info import internal + import trace + + def check_tracing(): + if defines.TRACING_ON: + return + + panic("Tracing is not enabled. Compile with TRACING_ON") # load the options.py config file to allow people to set their own # default options @@ -221,21 +228,9 @@ def main(): print if options.trace_help: - import traceflags - done = True - print "Base Flags:" - traceflags.baseFlags.sort() - print_list(traceflags.baseFlags, indent=4) - print - print "Compound Flags:" - traceflags.compoundFlags.sort() - for flag in traceflags.compoundFlags: - if flag == 'All': - continue - print " %s:" % flag - print_list(traceflags.compoundFlagMap[flag], indent=8) - print + check_tracing() + trace.help() if options.list_sim_objects: import SimObject @@ -306,7 +301,7 @@ def main(): internal.debug.schedBreakCycle(int(when)) if options.trace_flags: - import traceflags + check_tracing() on_flags = [] off_flags = [] @@ -315,7 +310,7 @@ def main(): if flag.startswith('-'): flag = flag[1:] off = True - if flag not in traceflags.allFlags and flag != "All": + if flag not in trace.flags.all and flag != "All": print >>sys.stderr, "invalid trace flag '%s'" % flag sys.exit(1) @@ -325,24 +320,23 @@ def main(): on_flags.append(flag) for flag in on_flags: - internal.trace.set(flag) + trace.set(flag) for flag in off_flags: - internal.trace.clear(flag) + trace.clear(flag) if options.trace_start: - def enable_trace(): - internal.trace.cvar.enabled = True - - e = event.create(enable_trace) + check_tracing() + e = event.create(trace.enable) event.mainq.schedule(e, options.trace_start) else: - internal.trace.cvar.enabled = True + trace.enable() - internal.trace.output(options.trace_file) + trace.output(options.trace_file) for ignore in options.trace_ignore: - internal.trace.ignore(ignore) + check_tracing() + trace.ignore(ignore) sys.argv = arguments sys.path = [ os.path.dirname(sys.argv[0]) ] + sys.path diff --git a/src/python/m5/trace.py b/src/python/m5/trace.py new file mode 100644 index 000000000..9e2351dbe --- /dev/null +++ b/src/python/m5/trace.py @@ -0,0 +1,20 @@ +import internal +import traceflags as flags + +from internal.trace import clear, output, set, ignore + +def enable(): + internal.trace.cvar.enabled = True + +def help(): + print "Base Flags:" + for flag in trace.flags.basic: + print " %s: %s" % (flag, trace.flags.descriptions[flag]) + print + print "Compound Flags:" + for flag in trace.flags.compound: + if flag == 'All': + continue + print " %s: %s" % (flag, trace.flags.descriptions[flag]) + print_list(trace.flags.compoundMap[flag], indent=8) + print -- cgit v1.2.3