diff options
author | Steven Knight <knight@baldmt.com> | 2002-01-27 15:20:33 (GMT) |
---|---|---|
committer | Steven Knight <knight@baldmt.com> | 2002-01-27 15:20:33 (GMT) |
commit | 2e90c9d1a397504e99d95d07df2a01224a77b3c7 (patch) | |
tree | 7a6273980ab28c0fa34ad7b97d5c51f38b10e719 /src | |
parent | 47e39e99099af899b36634a6bf13459587f61ba1 (diff) | |
download | SCons-2e90c9d1a397504e99d95d07df2a01224a77b3c7.zip SCons-2e90c9d1a397504e99d95d07df2a01224a77b3c7.tar.gz SCons-2e90c9d1a397504e99d95d07df2a01224a77b3c7.tar.bz2 |
Add a --debug=pdb option to run SCons under the Python debugger.
Diffstat (limited to 'src')
-rw-r--r-- | src/CHANGES.txt | 2 | ||||
-rw-r--r-- | src/engine/SCons/Script/__init__.py | 16 |
2 files changed, 17 insertions, 1 deletions
diff --git a/src/CHANGES.txt b/src/CHANGES.txt index f381241..05c4b81 100644 --- a/src/CHANGES.txt +++ b/src/CHANGES.txt @@ -63,6 +63,8 @@ RELEASE 0.04 - and updating multiple targets in a single Task. Simplify the interface between Task and Taskmaster. + - Add a --debug=pdb option to re-run SCons under the Python debugger. + From Steve Leblanc: - Add var=value command-line arguments. diff --git a/src/engine/SCons/Script/__init__.py b/src/engine/SCons/Script/__init__.py index 12a22f4..0416b62 100644 --- a/src/engine/SCons/Script/__init__.py +++ b/src/engine/SCons/Script/__init__.py @@ -361,7 +361,21 @@ def options_init(): def opt_debug(opt, arg): global print_tree - if arg == "tree": + if arg == "pdb": + if sys.platform == 'win32': + lib_dir = os.path.join(sys.exec_prefix, "lib") + else: + lib_dir = os.path.join(sys.exec_prefix, + "lib", + "python" + sys.version[0:3]) + args = [ sys.executable, os.path.join(lib_dir, "pdb.py") ] + \ + filter(lambda x: x != "--debug=pdb", sys.argv) + if sys.platform == 'win32': + ret = os.spawnve(os.P_WAIT, cmd_interp, args, env) + sys.exit(ret) + else: + os.execvpe(args[0], args, os.environ) + elif arg == "tree": print_tree = 1 else: sys.stderr.write("Warning: %s is not a valid debug type\n" |