eclipse pydev中没有回溯
Posted
技术标签:
【中文标题】eclipse pydev中没有回溯【英文标题】:No traceback in eclipse pydev 【发布时间】:2016-01-25 17:09:24 【问题描述】:我正在使用 eclipse + pydev + python 3.4 + pyQt5.5 我有一个奇怪的问题,程序崩溃时没有回溯或任何其他消息。 当我尝试编写程序启动时执行的错误生成代码时(如 MainWindow 的 init 方法),我得到了标准回溯,一切正常。 但是当我将我的错误代码放入某种回调中(比如连接到 QPushButoon 点击信号的方法)并按下该按钮时,程序崩溃但我的 Eclipse 控制台窗口保持为空。没有回溯,没有错误消息,什么都没有。 你有什么建议吗?
编辑。示例代码: 对于这种类型的代码,应用程序在启动时会崩溃,我会得到回溯,一切都会好起来的:
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
error_producing_string
在此示例中,应用程序将在单击按钮时崩溃,但我不会收到任何错误或回溯:
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.btn = QPushButton('text', self)
self.button.clicked.connect(self.handleButton)
def handleButton(self):
error_producing_string
【问题讨论】:
【参考方案1】:好吧,PyQt 在某些情况下确实会崩溃(它可能与 PyDev 无关)......即使在来自 qt 的回调中出现异常也可能导致应用程序崩溃(因此,您确实必须小心处理 qt 代码)。
这里的第一件事是打开故障处理程序,看看它是否能让你找到有用的东西。如果没有,请尝试单步执行 PyDev 调试器,直到它崩溃,看看您是否可以从中获得有用的信息... PyQt 并在 gdb 或 Visual c++ 中对其进行调试。
此外,您可能应该查看What are good practices for avoiding crashes / hangs in PyQt?,了解处理 PyQt 时的良好做法。
【讨论】:
尝试打开故障处理程序(-X faluthandler),仍然没有错误消息,但控制台标题现在是“以上是关于eclipse pydev中没有回溯的主要内容,如果未能解决你的问题,请参考以下文章