如何调试PYGTK程序

时间:2009-05-27 16:17:48

标签: python debugging gtk pygtk

当python在pygtk信号处理回调中间引发异常时,gtk主循环捕获异常,打印其值并且主循环继续,忽略它。

如果你想用pdb(python -m pdb myscript.py)之类的东西进行调试,你希望当异常发生PDB跳过它并且你可以开始调试时。因为这是不可能的。

我如何调试pygtk程序?

1 个答案:

答案 0 :(得分:4)

你不能让pdb跳转到异常,因为gtk的主循环捕获并静默异常。

其中一个选择是使用pdb.set_trace()

import pdb
pdb.set_trace()

请参阅pdb documentation

或者您可以使用Winpdb

它是一个平台独立的图形GPL Python调试器,支持通过网络进行远程调试,多线程,命名空间修改,嵌入式调试,加密通信,速度比pdb快20倍。< / p>

特点:

  • GPL许可证。 Winpdb是自由软件。
  • 与CPython 2.3到2.6和Python 3000
  • 兼容
  • 与wxPython 2.6至2.8
  • 兼容
  • 独立于平台,并在Ubuntu Gutsy和Windows XP上进行测试。
  • 用户界面:rpdb2是基于控制台的,而winpdb需要wxPython 2.6或更高版本。

Screenshot
(来源:winpdb.org