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

2024-07-03 07:28:22 发布

您现在位置:Python中文网/ 问答频道 /正文

在Pycharm 5.0.4中调试python3.5pogram时,我试图点击pause按钮来找出程序挂起的原因/位置(在visualstudio中可以这样做)。在

但是,什么也没有发生:暂停按钮没有变灰,恢复按钮保持灰色,在调试器工具窗口中,“帧不可用”。在

我尝试了不同的基本程序,在Linux和Windows上都没有用。在

这是一个bug还是我遗漏了Pycharm调试的工作原理?在

我还注意到,当一个断点被命中时,只有一个线程被挂起,我看不到任何方法可以挂起其他线程来检查它们的堆栈帧。我也很想知道如何实现这种线程特定的挂起。在


Tags: 工具程序linuxwindows原因线程按钮bug
2条回答

在PyCharm中,有一个用于调试的选项,它允许您逐步检查代码,这可能更有用,而不是尝试暂停程序。在

首先需要在代码中插入一个断点;只需在灰色条中单击要打断的行:

InsertBreakPoint

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

enter image description here

DebugStepThrough

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

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

高温

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

如果这是一个常规的python循环,pause python就可以工作了。 我相信问题出在python本身,而不是您使用的调试工具。在

暂停python程序时,会暂停interperter,因此在interperter上下文中运行的所有线程都将暂停,您可以在frames窗口中看到它们。任何显示消息“Frames not available in non suspended state”的线程都不会挂起,因为当您暂停程序时,它正在休眠。在

有关如何调试c代码,请参见下面的内容 Not working python breakpoints in C thread in pycharm or eclipse+pydev

相关问题 更多 >