python - 调试器未从 Winpdb 分离

标签 python c++ linux winpdb

我正在使用 PythonQT 来执行 python 脚本(因为我需要从 python 脚本调用 c++ 方法)

我的winpdb版本是1.4.6,机器是CetOS 6.5

现在我想在 python 脚本中启用调试

我在脚本中添加了 rpdb2.start_embedded_debugger('test') 并调用了 PythonQt.EvalFile() 函数,现在脚本正在等待调试器。

我已经从终端打开 winpdb UI 并附加到调试器。我能够执行“Next”、“Step into”等操作,并且所有局部变量都正确可见 但是当我试图分离调试器时,它并没有分离。状态显示“DETACHING”但没有任何反应,我什至无法关闭 winpdb。退出的唯一方法是杀死 winpdb。

如果我从终端运行相同的脚本文件,它会正常工作 (python) 并按预期分离。

通过查看日志,我发现,如果我从终端运行,则调试 channel 是加密的,但是当从 PythonQt 调试 channel 未加密时,不确定这与分离有任何关系

通过进一步查看 rpdb2.py 代码,我发现 Winpdb 卡在 self.getSession().getProxy().request_go(fdetach) of request_go(self, fdetach = False): 在 rpdb2.py 中

51000端口仍处于建立模式

请就此提出建议。

最佳答案

最后我用最新版本的python QT解决了这个问题

关于python - 调试器未从 Winpdb 分离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33037770/

相关文章:

regex - 仅当行以特定单词开头时才替换字符的第一个和最后一个并发

python - python 中的 max() 和 min()

python - Pandas 仅显示给定 id 的数据框中值的唯一实例

c++ - 等待线程完成而不卡住MFC中的UI

c++ - 在 32 位系统上使用 int64_t 而不是 int32_t 对性能有什么影响?

java - 可扩展的 http session 管理(java,linux)

python - 是否可以在没有 Visual Studio 许可证的情况下在 Windows 上编译 Cython 模块用于商业目的?有哪些替代方案?

python - Networkx - 如何更改边缘 ID?

c++ - 如何使用 boost 预处理器生成访问器?

c++ - 如何在 RHEL 上为新的 Boost 版本构建/部署 RPM?