VS Code外部应用调试扩展:简化外部应用内容开发
VS Code的external-app-debug扩展旨在简化在外部应用中执行内容的开发过程。通过与调试协议感知的应用集成,该扩展为开发者提供了强大的调试功能。
使用external-app-debug扩展
从那时起,VS Code将启动您指定的应用,并与其建立连接。之后的功能由应用处理,包括加载符号、控制执行、获取运行时状态等。
一个支持的应用示例(仍在开发中)可在https://github.com/CypherSignal/bsnes-plus/tree/vscode-newdbg找到。
应用开发者信息
如果您是应用的维护者,并希望您的应用作为调试目标与此扩展协作,请注意以下内容:
在运行启动请求时,您的应用将作为新进程启动,扩展将在5420到5450端口范围内进行端口扫描,尝试在每个端口创建Tcp连接。您的应用应在此端口范围内运行Tcp服务器,等待连接。如果扩展成功与您的应用建立连接,将发送一个带有命令external-apppreinit的自定义请求,类似于调试适配器协议的一部分正常请求。您需要提供一个响应,填写您的应用的pid(进程ID)。一旦收到您的应用的响应,用于端口扫描的连接将关闭,发现您的应用的端口将传递给VS Code。VS Code将在同一端口上打开一个新连接,并执行正常的调试适配器协议活动。
在运行附加请求时,会发生一些类似的行为。当然,您的应用不会被启动,但会对上述相同端口集进行端口扫描。external-apppreinit请求也将被触发,但除了您的应用的pid外,您还应填写body的标题和描述。扩展将枚举所有对external-apppreinit请求的响应者,并在选择器中为用户显示标题和描述。建议标题为您的应用名称,描述为当前加载的脚本或子程序的名称(如果有)。
如果external-apppreinit请求包含在调试适配器协议中,它将类似于以下定义:
export interface external-appPreInitRequest extends Request {
// command: 'external-apppreinit';
}
export interface external-appPreInitResponse extends Response {
// Information for this debug adapter
body: {
pid: Number; // The process ID of the executable
title: String; // The title to display on the picker, for selecting executable to attach to
description: String; // An extended description of what to attach to
}
}
除此之外,与调试适配器协议的所有交互保持不变。有关此协议的信息可在https://microsoft.github.io/debug-adapter-protocol/overview找到。
自己构建和运行扩展
本站所有资源都是由网友投稿发布,或转载各大下载站, 请自行检测软件的完整性!
本站所有资源仅供学习与参考,请勿用于商业用途,否则 产生的一切后果将由您自己承担!
如有侵权请联系我们删除下架,联系方式:study_golang@163.com