【问题标题】:View error traceback when running commands from VS Code Python debugger从 VS Code Python 调试器运行命令时查看错误回溯
【发布时间】:2020-10-27 18:31:42
【问题描述】:

当我使用带有 Python 的 VS Code 调试器在某些断点处停止时,我经常直接在调试控制台中编写一些行(在我的程序中将其用作交互式 Python shell)。

问题是,当我在这些行中出现错误时,从调试控制台键入时,我看不到错误的完整 Python 样式回溯,而只看到最后一行 (: ),即,不引用引发错误的代码文件、引发错误的行以及完整的堆栈跟踪。

是否有任何方法可以配置 VS Code 调试器以显示从调试器执行的行引发的错误的完整回溯?

我通过 ssh 在远程机器上开发(和调试)。

例子:

我写了一个名为 tmp2.py 的文件,其中包含:

class A:
    def __init__(self, val):
        print(val)

a = A()

如果我将调试点放在第 5 行:print('start'), 然后从调试控制台直接输入a = A(),我看到这一行输出:

TypeError: __init__() missing 1 required positional argument: 'val'

但如果我运行完整的程序,我会看到详细的输出:

Traceback (most recent call last):
  File "/home/innereye/anaconda2/envs/py3tf2/lib/python3.7/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/home/innereye/anaconda2/envs/py3tf2/lib/python3.7/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/home/innereye/.vscode-server/extensions/ms-python.python-2020.6.91350/pythonFiles/lib/python/debugpy/__main__.py", line 45, in <module>
    cli.main()
  File "/home/innereye/.vscode-server/extensions/ms-python.python-2020.6.91350/pythonFiles/lib/python/debugpy/../debugpy/server/cli.py", line 430, in main
    run()
  File "/home/innereye/.vscode-server/extensions/ms-python.python-2020.6.91350/pythonFiles/lib/python/debugpy/../debugpy/server/cli.py", line 267, in run_file
    runpy.run_path(options.target, run_name=compat.force_str("__main__"))
  File "/home/innereye/anaconda2/envs/py3tf2/lib/python3.7/runpy.py", line 263, in run_path
    pkg_name=pkg_name, script_name=fname)
  File "/home/innereye/anaconda2/envs/py3tf2/lib/python3.7/runpy.py", line 96, in _run_module_code
    mod_name, mod_spec, pkg_name, script_name)
  File "/home/innereye/anaconda2/envs/py3tf2/lib/python3.7/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/home/innereye/deeplearning/tmp2.py", line 6, in <module>
    a = A()
TypeError: __init__() missing 1 required positional argument: 'val'

这会将我引导到引发错误的实际文件和行。

我希望调试器向我显示直接从调试控制台执行的行的第二个输出。

【问题讨论】:

  • 但是在调试控制台中,并没有产生错误的行号。您只是自己键入了该行。除此之外,我认为堆栈跟踪中没有任何有用的信息。除了最后一行之外,您在 strack 跟踪中看到的所有内容都只是 VS Code 用来最终调用 Python 解释器的多层包装器。

标签: python visual-studio-code vscode-debugger vscode-remote


【解决方案1】:

抱歉,好像不可能,VSCode 没有提供相关配置。而且我认为这很难得到你想要的,这是因为调试理论。

【讨论】:

    猜你喜欢
    • 2021-09-04
    • 2013-10-24
    • 1970-01-01
    • 2022-10-14
    • 2020-05-22
    • 2021-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多