非常简单的最小化示例:
if __name__ == '__main__':
print("Still ok")
raise Exception("Dummy exception")
print("End of Program")
当我在Python 3.6的PyCharm 2019.2调试器中运行它时,得到了以下输出:
/usr/bin/python3.6 /home/[...]/pycharm-community-2019.2/helpers/pydev/pydevd.py --multiproc --qt-support=auto --client 127.0.0.1 --port 46850 --file /home/[...]/test_traceback.py
pydev debugger: process 18394 is connecting
Connected to pydev debugger (build 192.5728.105)
Still ok
此时调试器中断执行流,但在调试器控制台中没有显示跟踪和异常消息。如果我在PyCharm 2018.1中运行相同的,它确实会在命中断点时显示这些消息。
当我点击
时,我得到了想要的输出,但是我不能再在调试上下文中运行代码了,因为进程结束了:
Traceback (most recent call last):
File "/home/[...]/pycharm-community-2019.2/helpers/pydev/pydevd.py", line 2060, in <module>
main()
File "/home/[...]/pycharm-community-2019.2/helpers/pydev/pydevd.py", line 2054, in main
globals = debugger.run(setup['file'], None, None, is_module)
File "/home/[...]/pycharm-community-2019.2/helpers/pydev/pydevd.py", line 1405, in run
return self._exec(is_module, entry_point_fn, module_name, file, globals, locals)
File "/home/[...]/pycharm-community-2019.2/helpers/pydev/pydevd.py", line 1412, in _exec
pydev_imports.execfile(file, globals, locals) # execute the script
File "/home/[...]/pycharm-community-2019.2/helpers/pydev/_pydev_imps/_pydev_execfile.py", line 18, in execfile
exec(compile(contents+"\n", file, 'exec'), glob, loc)
File "/home/[...]/test_traceback.py", line 4, in <module>
raise Exception("Dummy exception")
Exception: Dummy exception
Process finished with exit code 1
我的断点配置:
2条答案
按热度按时间vzgqcmou1#
它适用于 PyCharm(社区)2019。1.4:
您似乎遇到了一个(回归)错误:
影响*v2019.2.1***,计划在 v2019.2.3中修复。
要解决此问题**,您必须执行以下任一操作:
需要注意的是:当遇到这种情况时,在(不太可能的)问题还不知道的情况下,用户可以自己动手,做一些调试,并修复问题(可能会向 JetBrains 提交一个补丁)。
更新 #0
已安装(在 20190930 上)最新补丁(v2019.2.3),在 PyCharm 的控制台中存在追溯(因此,漏洞已修复)。
ni65a41a2#
你有没有检查你的空格在开始的每一个可执行行?有一次它发生在我身上是修复后,只是纠正了空格。