当所有扩展都被禁用时,这个问题是否会发生?:否(但请阅读描述)
- VS Code 版本:1.74.0 及更新版本
- OS 版本:MacOS Ventura 13.1
已安装的扩展:
- ms-python.python
摘要: Python 调试器无法附加到子进程,并因 "Failed to launch debugger for child process" 消息而失败。此问题在此提交,而不是在 Python 扩展存储库中,因为它是 #166137 之后的一个回归。
更长的解释: 当使用类似 debugpy 的调试服务器并从 VSCode(一个普通的远程附加启动配置)附加到它时,调试器在os.execv()
调用(以及我认为类似的方法)之后断开连接。这个问题从 VSCode 1.74.0 开始出现,在 1.73.1 中工作得非常好。起初我以为这是 Python 扩展的问题,但是即使在降级扩展后,问题仍然存在。然后我和git bisect
一起坐下来,从源代码编译 VSCode,并找到了导致问题的 PR:#166137 。我还不确定为什么这会破坏调试。我已经制作了一个 MCVE 和一个屏幕录制,显示了重现过程:
Screen.Recording.2023-01-13.at.10.14.57.mov
python-debugger-reproduction.zip
9条答案
按热度按时间cgvd09ve1#
感谢您提出这个问题!看起来您可能正在使用旧版本的VS Code,最新稳定版本是1.74.3。请尝试升级到最新版本并检查此问题是否仍然存在。
快乐编码!
enxuqcxy2#
是的,我忘了提到这个问题在1.74.3版本和内测版中也存在。
pftdvrlh3#
感谢您的二分查找!我可以复现。
t9eec4r04#
这是我的理解:
debugpyAttach
请求startDebugging
调用时,父进程已经死亡因此,我认为 debugpy 或 Python 扩展在有待处理的
debugpyAttach
请求时不应终止父会话,以避免这种情况。虽然有点棘手,但我认为 vscode 这样做是有道理的。你怎么看 @int19h@fabiozvlju58qv5#
调试器那边也有很多异步操作,导致了 microsoft/debugpy#43 。
我们已经很久没有研究这个问题了,但据我回忆,问题的一部分也是UI - 基本上,当父进程在树中消失时,VSCode不喜欢它,而子进程仍然在其下存活。现在它是受支持的吗?
flseospp6#
我相信,对于这个案例仍然存在一个未解决的问题。
tmb3ates7#
各位,关于这个有什么消息吗?
9ceoxa928#
当您提到
vscode fails to start the child session, because you can't request to start a session as a child of a dead parent session
时,您是指我们收到一条消息,表示调试适配器无效吗?我问这个问题是因为我正在尝试调试一个类似的场景,这就是我最终得到的结果。
vq8itlhq9#
Dzien Dobry @kamildoleglo!
你是否有机会解决这个问题?