微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

流程启动时自动连接vs代码c ++调试器

如何解决流程启动时自动连接vs代码c ++调试器

我对godot作为游戏引擎以及使用c ++进行开发的可能性非常感兴趣。我不再使用gdnative方法,因为它更快,更容易(并且还使我有可能使用CMake而不是SCons)。我已经基于gdnative_cpp_example安排了一个小型项目,唯一的区别是我使用了Cmake而不是Scons(高兴的godot-cpp,它用于生成绑定,而SConstruct里面有CMakeLists脚本)。我剩下的唯一问题是,缺少调试c ++和gdscript代码的好方法。对于开发,我使用vs代码(在Windows上),现在我发现了三种调试方式:

  1. 我可以直接从vs代码开始项目,稍微修改“启动”配置,以使用--project参数启动godot编辑器。这样就可以调试c ++,但不能调试gdscript。
  2. 有了针对vs代码的godot-tools扩展,我可以使用last来调试gdscript,但不能调试c ++。
  3. 我可以从编辑器启动项目(这将使我能够调试gdscript),然后将vs代码调试器附加到正在运行的进程中以调试c ++ dll。这可行,但是只有在启动此过程后,我才需要选择正确的过程来直接附加代码。因此,我错过了初始化时间,而且感觉也很笨拙。..

最终,我想同时在vs代码中调试gdscript和c ++ dll,但是我不确定这是否有可能。.因此,最好是能够从编辑器自动启动游戏进程。连接与代码。我尝试搜索“ vs代码自动c ++调试”之类的内容,但在网上找不到任何内容。也许我只是在搜索不正确的术语。有人知道这个话题吗?

(我试图让我的问题简短一些,但我不确定我是否提供了很多有用的信息,因此随时提出问题)

解决方法

如果您是来这里开始自动调试器的,那么也许tenfour对这个问题的评论可能会对您有所帮助,但是由于这个问题的主要原因有点不同(请在此处找到使用c ++和gdscript调试godot项目的方式同时),我发现了不同的解决方案,所以如果有人出于相同的原因来到这里,这就是我的想法。首先,您需要在vscode中正确设置c ++项目,这将从godot-cpp项目和您的个人代码编译您的gdnative dll(我建议对所有这些都使用CMake,因为我说过godot-cpp可以与CMake一起使用)。第二:您需要将godot-tools替换为您的vscode。一切正常运行后,dll正在编译并且godot项目正在使用它,您需要设置下一个启动配置:

{
    // this must be in .vscode/launch.json
    "version": "0.2.0","configurations": [
        {
            "name":"godot-gdscript-attach","type": "godot","request": "launch","project": "${workspaceFolder}/project/","port": 6007,"address": "127.0.0.1","launch_game_instance": false,"launch_scene": false
        },{
            "name": "godot-cpp-launch","type": "cppvsdbg","program": "${config:godot_tools.editor_path}","args": [
                "--debug","--remote-debug","127.0.0.1:6007","--path","\"${workspaceFolder}/project/\""
            ],"stopAtEntry": false,"cwd": "${workspaceFolder}/project/","environment": [],"externalConsole": true
        }
    ],"compounds": [
        {
            "name": "godot-launch","configurations": [
                "godot-gdscript-attach","godot-cpp-launch"
            ]
        }
    ]
}
  • godot-gdscript-attach在启动后将等待godot游戏作为ip / port = 127.0.0.1:6007上的调试目标进行连接(即使您启动此配置,并且在从编辑器启动游戏之后,此命令也将起作用)。
  • godot-cpp-launch将作为cppvsdbg的调试目标启动您的游戏(据我了解,这是vs调试器)。关于这一点的更多信息:
    • “程序”:“ $ {config:godot_tools.editor_path}” config:godot_tools.editor_path作为路径,因为它是为godot-tools设置的选项。没什么特别的,只是方便,所以我现在可以同时更改godot工具和调试配置的godot路径。
    • 自变量“ 127.0.0.1:6007”
    • -路径$ {workspaceFolder} / project /

之后,您可以在vs代码中作为配置运行godot-launch。这将启动您的项目,并将两个调试器(c ++调试器和gdscript一个)连接到该项目。两种类型的断点都可以使用。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。