我有基于Scons构建的python项目。
我正在尝试使用Eclipse IDE和Pydev修复源代码中的一些错误。
我已经安装了Eclispe Sconsolidator插件。
我的项目如下 项目A. 所有源代码,包括定义所有tager,environmet等的Sconscript文件。
Eclipse为我提供了项目的Add Scons特性。添加后,Scons会自动获取我的Sconscript文件并执行。
== Running SCons at 10/28/13 1:59 PM ==
Command line: /opt/gcdistro/app/scons/2.3.0/bin/scons -u --jobs=16
scons: Reading SConscript files.
我想知道如何在一些.s文件中放置断点,这些文件是Scons正在执行的项目的一部分。
答案 0 :(得分:0)
调试SCons项目可能很困难。您在SConstruct或SConscript python脚本中拥有的只是更大图片的一部分。 SCons以多步方式构建,首先它读取脚本并构建其树,然后分析这些树并仅构建构建所需的树。所以,你可能只能调试读取python脚本的声明部分。
尝试调试它就像任何其他python程序一样,但我怀疑你会走得很远。
答案 1 :(得分:0)
经过一番努力,我能够找到答案。由于SCons本身就是一个python模块,因此可以使用PyDev在eclipse中调试它。这不是我想要的最佳解决方案,但却是最接近的。
第1步:我禁用了项目的Eclipse SCons特性。
步骤2:创建一个主文件,它将执行与SCons相同的功能,但实例化SCons主函数的python对象。
步骤3:在我想要的脚本中设置断点,并且能够执行它。
import os
import sys
if __name__ == '__main__':
sys.path.append('/gpfs02/gcdistro/app/scons/2.3.0/engine/')
sys.path.append('/gpfs02/gcdistro/app/scons/2.3.0/bin/')
sys.path.append('/gpfs02/gcdistro/app/scons/2.3.0/engine/SCons/')
import SCons
from SCons import Script
Script.main()