我用pyqt4构建了一个相当简单的应用程序。我想调试一个连接到我应用程序中某个按钮的函数。但是,当我做以下事情时
python -m pdb app.pyw
> break app.pyw:55 # This is where the signal handling function starts.
事情不像我希望的那样顺利。调试器没有中断我设置断点的函数并让我单步执行它,而是进入一个无限循环,打印出QCoreApplication::exec: The event loop is already running
,我无法输入任何内容。有更好的办法吗?
你需要打电话给QtCore.pyqtRemoveInputHook。我用自己的
set_trace
版本包装它:当你完成调试后,你可以调用
QtCore.pyqtRestoreInputHook()
,最好是在你还在pdb中的时候,然后在你点击enter之后,控制台出现垃圾邮件,继续点击'c'(继续)直到应用程序恢复正常。(由于某种原因,我不得不打了几次'c',它一直回到pdb,但打了几次之后,它恢复正常)有关更多信息,请访问Google“pyqtRemoveInputHook pdb”。(很明显不是吗?;页)
我必须在跟踪点使用“next”命令才能首先脱离该函数。为此,我修改了mgrandi的代码:
这对我有效。我从这里找到了解决方案:Python (pdb) - Queueing up commands to execute
相关问题 更多 >
编程相关推荐