2013-07-30 82 views
1

我试图调试一个SCONStruct文件,这个文件的深层陷入一些模糊的功能,我想单步执行代码。这就是我试图做的,失败:在win32上的scons:用pdb调试SConstruct

$ python -m pdb `which scons.py` 
> c:\python27\scripts\scons.py(26)<module>() 
-> __revision__ = "src/script/scons.py 5357 2011/09/09 21:31:03 bdeegan" 
(Pdb) b SConstruct:10 
*** 'SConstruct' not found from sys.path 
(Pdb) import sys, os 
(Pdb) sys.path.append(os.getcwd()) 
(Pdb) b SConstruct:10 
*** 'SConstruct' not found from sys.path 
(Pdb) 

如果我重新命名SConstruct到SConstruct.py,它成功设置断点,但当然这是行不通的,因为“scons的”负荷SConstruct,不是SConstruct.py。 任何方式来强制python在那里放置一个断点?

我从Win7系统上的msys bash控制台运行这个。 Python版本:

$ python 
Python 2.7.2 (default, Jun 12 2011, 15:08:59) [MSC v.1500 32 bit (Intel)] on win32 
Type "help", "copyright", "credits" or "license" for more information. 

回答

2

上有Debugging SCons wiki page一些提示。具体来说:

scons --debug=pdb <args...> 
# from the wiki example: you can set a breakpoint on a file relative to sys.path 
(Pdb) b SCons/Tool/msvc.py:158 
# you can set a breakpoint in the SConstruct file with the full path 
(Pdb) b /Users/me/code/project/SConstruct:10 
+0

对不起,延迟响应,我想我找到了一些解决方法,并称它为一天。无论如何,我只是在Windows下尝试这个建议,而且它似乎工作,谢谢! – Daniele

+0

不幸的是,由于某种原因,它不能在我的ubuntu安装程序中工作,但也许我做错了什么......无论如何,这个问题主要是关于Windows。 – Daniele