Очень простой минимальный пример:
if __name__ == '__main__':
print("Still ok")
raise Exception("Dummy exception")
print("End of Program")
Я получаю этот вывод при запуске его в отладчике PyCharm 2019.2 с Python 3.6:
/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
Моя конфигурация точки останова: