调试Sconscript文件eclipse

时间:2013-10-28 14:25:19

标签: python eclipse scons

我有基于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正在执行的项目的一部分。

2 个答案:

答案 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()