如何暂停Pycharm中的程序执行(暂停按钮不起作用)?

时间:2016-02-26 10:49:03

标签: python multithreading debugging pycharm suspend

在Pycharm 5.0.4中调试Python 3.5 pogram时,我试图点击暂停按钮,找到程序挂起的原因/位置(可以在Visual Studio中完成)。

然而,没有任何反应:暂停按钮不会变为灰色,恢复按钮保持灰色,在调试器工具窗口中,“框架不可用”。

我尝试在Linux和Windows上使用不同的基本程序,但无济于事。

这是一个错误还是我错过了Pycharm调试应该如何工作?

我还注意到,当一个断点被击中时,只有一个线程被挂起,我看不到暂停其他线程来检查它们的堆栈帧。我很想知道如何实现这种特定于线程的暂停。

2 个答案:

答案 0 :(得分:0)

听起来你的程序挂在睡眠或类似的东西上,或者可能在某些本机代码上。

如果它是一个常规的python循环,暂停python将起作用。 我相信问题出在python本身而不是你正在使用的调试工具上。

当你暂停python程序时,你会暂停interperter,所以在interperter的上下文中运行的所有线程都会被暂停,你可以在frame窗口中看到它们。任何显示消息的线程"帧在非暂停状态下不可用"暂停,因为当你暂停程序时它正在睡觉。

请参阅此内容以了解如何调试c代码 Not working python breakpoints in C thread in pycharm or eclipse+pydev

答案 1 :(得分:-1)

在PyCharm中,有一个调试选项,允许您单步调试代码,这可能更有用,而不是试图暂停程序。

您最初需要在代码中插入断点;只需点击要中断的行的灰色栏:

InsertBreakPoint

然后您可以按Alt + Shift + F9,或点击菜单中的Run > Debug开始逐步执​​行代码:

enter image description here

DebugStepThrough

启动调试模式后,单击红色圆圈突出显示的按钮 - 这将使您能够单步执行代码,查看变量,分配以及是否收到任何错误。

如果您需要在任何时候停止,只需点击调试窗口左侧的红色停止按钮即可 控制台选项卡将允许您查看正在打印到屏幕上的内容(如果有的话),以及在什么时候,保存您有大量的打印语句,就像使用空闲或类似的IDE进行调试一样

HTH