如何将VS Code的Python调试器附加到正在运行的进程?

2024-09-30 08:20:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用的是Jayamanne在VS代码上运行的pythonversion0.7.0。将调试器附加到正在运行的进程的文档需要添加额外的代码并配置端口和地址。我认为必须有一种更简单的方法,简单地选择或指定进程名或id

显然,VS代码可以基于节点.JS文档和演示。Python解释器也能做到,因为这是我在visualstudio2017上调试应用程序的正常方式。在

如何配置VS代码Python以按名称或id附加到进程?这可能吗?如果没有,为什么文件没有明确说明?在


Tags: 方法端口代码文档id应用程序节点进程
1条回答
网友
1楼 · 发布于 2024-09-30 08:20:21

没有“简单”的方法。按照您提到的“添加额外代码并配置端口和地址”的文档进行操作。在

您只能将一个C调试器“附加”到任何进程because Windows Debugging API has this functionality,并提供所有必要的机制在幕后工作,使这个看似简单的操作成为可能(用操作系统的手段停止目标进程,在其中创建一个助手线程,操纵它的内存(包括用^ {CD1}}替换机器代码来设置断点),而Visual STIdio使用源代码和PDB文件将内存数据解析成C或C++级别的构造。在

对于Python则不是这样:虽然您同样可以在C级中断进程,并使用C API从helper线程操作解释器实例(如果您以某种方式获得了它的地址),但是API中没有办法使它从传递给它的现有代码中分离出来,并在仍然存在的情况下开始执行指令能够访问现有代码。在

pdb通过“现有代码”进入调试会话:解释器在某些时刻调用它的sets the ^{} callback,以便在断点和/或wraps your program with itself打开控制台并捕获异常。在

您描述的调试器的行为是一样的:只是它的机器充当服务器,通过套接字接受来自连接的IDE客户端的命令,而不是打开控制台提示符。在

相关问题 更多 >

    热门问题