Add --pdb
authorNathan Binkert <binkertn@umich.edu>
Wed, 12 Jul 2006 19:21:23 +0000 (15:21 -0400)
committerNathan Binkert <binkertn@umich.edu>
Wed, 12 Jul 2006 19:21:23 +0000 (15:21 -0400)
src/python/m5/main.py:
    Add a command line option to invoke pdb on your script

--HG--
extra : convert_revision : ef5a2860bd3f6e479fa80eccaae0cb5541a20b50

src/python/m5/main.py

index 80dbcb5aaa5ca2c33da7c1c252a0e1006d7ab3e0..54c54c1d5d9c57d8dbd72eb31de87c85fb3efeec 100644 (file)
@@ -119,6 +119,8 @@ add_option('-d', "--outdir", metavar="DIR", default=".",
     help="Set the output directory to DIR [Default: %default]")
 add_option('-i', "--interactive", action="store_true", default=False,
     help="Invoke the interactive interpreter after running the script")
+add_option("--pdb", action="store_true", default=False,
+    help="Invoke the python debugger before running the script")
 add_option('-p', "--path", metavar="PATH[:PATH]", action='append', split=':',
     help="Prepend PATH to the system path when invoking the script")
 add_option('-q', "--quiet", action="count", default=0,
@@ -287,8 +289,19 @@ def main():
     sys.path = [ os.path.dirname(sys.argv[0]) ] + sys.path
 
     scope = { '__file__' : sys.argv[0] }
-    exec("import readline", scope)
-    execfile(sys.argv[0], scope)
+
+    # we want readline if we're doing anything interactive
+    if options.interactive or options.pdb:
+        exec("import readline", scope)
+
+    # if pdb was requested, execfile the thing under pdb, otherwise,
+    # just do the execfile normally
+    if options.pdb:
+        from pdb import Pdb
+        debugger = Pdb()
+        debugger.run('execfile("%s")' % sys.argv[0], scope)
+    else:
+        execfile(sys.argv[0], scope)
 
     # once the script is done
     if options.interactive: