gpt4 book ai didi

visual-studio-code - 创建 VSCode 调试器扩展

转载 作者:行者123 更新时间:2023-12-04 22:04:35 25 4
gpt4 key购买 nike

我正在尝试编写一个 VSCode 扩展来支持基本的 SNES 应用程序开发。我已经有一个基本的语法定义和构建任务,所以我有语法高亮显示,并且能够使用 bass v14 汇编器使用 Ctrl+Shift+B 构建我的项目,但现在我想弄清楚如何启动项目使用 launch.json。我已经完成了 official docs并尝试了模拟调试器项目,但我似乎无法弄清楚如何为我的扩展调整它。首先,我使用 bsnes-plus 模拟器作为我的调试器。实际上并没有任何命令行或 IPC 接口(interface)可以让我实现适当的调试适配器,所以我真正想做的就是运行程序并将它传递给我的输出文件以启动。目前,我假设 bsnes-plus.exe 位于我的 $PATH 中,但最终我会尝试找出扩展的外部可执行依赖项的最佳实践。

所以这是我目前的问题:

  • launch.json 的“程序”字段是我编译的应用程序,还是 bsnes-plus.exe?
  • 如果“程序”是我的应用程序,我应该在哪里指定 bsnes-plus.exe?反之亦然。
  • 有没有办法指定我自己的项目级变量,例如$OUTPUT 这样我就不必将输出文件名硬编码到构建任务和启动任务中?
  • 有一次,我能够获得打开 bsnes-plus 的启动命令,但无法加载游戏,当我关闭它时,VSCode 提示调试器意外终止并立即重新打开 bsnes-plus。我该如何避免这种情况?我是否需要编写一个调试适配器,即使它实际上不会启动应用程序以外的任何事情,只是为了告诉 VSCode 它干净地退出了?

最佳答案

Is the "program" field of launch.json my compiled application, or is it bsnes-plus.exe?

这完全取决于调试扩展。它只是传递给调试适配器。它通常对应于正在调试的特定应用程序/脚本,而不是运行它的运行时,因此我建议它应该是您编译的应用程序。

If "program" is my application, where do I specify bsnes-plus.exe? Or vice versa.

你可以把它放在任何其他领域。在 Dart 中,我们有一个可以传递给调试适配器的 dartPath 字段。它通常由 DebugConfigurationProvider.resolveDebugConfig 静默填充(我们通过搜索 PATH 检测 SDK),因此用户永远不需要添加它。

Is there a way to specify my own project-level variables, e.g. $OUTPUT so that I don't have to hard-code the output filename into both the build task and the launch task?

您不能创建自己的变量,但是使用 resolveDebugConfig 您可以在将启动配置传递给调试适配器之前自行操作它,这可能允许您在此处执行所需的操作(例如,你可以在 program 上做一个字符串替换 - 或者如果它没有设置你甚至可以添加它,也允许 launch.json-less 启动。

Do I need to write a debug adapter even though it's not going to actually do anything other than launch the application, just so I can tell VSCode that it exited cleanly?

如果没有更多细节,我不确定这里发生了什么,但是拥有一个调试适配器可能是最有意义的——例如,如果你想让停止/重新启动按钮在工具栏上工作,你可能需要一个调试器可以终止和/或重新启动进程的适配器。

关于visual-studio-code - 创建 VSCode 调试器扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43239212/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com