ATL*_*DEV 6 python visual-studio visual-studio-code vscode-settings
我正在使用在VS Code上运行的Jayamanne的Python版本0.7.0.将调试器附加到正在运行的进程的文档需要添加额外的代码并配置端口和地址.我想通过简单地选择或指定进程名称或id必须有一个更简单的方法.
显然,VS Code能够基于Node.JS文档和演示.Python解释器也能够实现它,因为它是我在Visual Studio 2017上正常调试应用程序的方式.
如何配置VS Code Python以按名称或ID附加到进程?这可能吗?如果没有,为什么文档没有明确说明?
没有“简单”的方法。请遵循您提到的有关“添加额外代码并配置端口和地址”的文档。
您只能将 C 调试器“附加”到任何进程,因为 Windows 调试 API 具有此功能,并提供在幕后工作的所有必要机制,使这种看似简单的操作成为可能(使用操作系统手段停止目标进程,在它,操作其内存(包括替换机器代码以int 3设置断点)——而 Visual Stidio 使用源代码和 PDB 文件将内存数据解析为 C 或 C++ 级构造)。
对于 Python 来说情况并非如此:虽然您同样可以在 C 级别闯入进程,并使用 C API 从辅助线程操作解释器实例(如果您以某种方式获得其地址),但该 API 中没有提供任何方法来使其中断从传递给它的现有代码开始执行您的指令,同时仍然能够访问现有代码。
pdb通过“现有代码”让您进入调试会话:它设置解释器在某些时刻调用的sys.settrace回调,以便能够在断点处调出控制台和/或用自身包装您的程序并捕获异常。
您所描述的调试器的行为是相同的:只是它的机器充当服务器,而不是调出控制台提示符,通过套接字接受来自连接的 IDE 客户端的命令。
| 归档时间: |
|
| 查看次数: |
708 次 |
| 最近记录: |