【问题标题】:how to debug bazel c++ google test in visual studio code如何在 Visual Studio 代码中调试 bazel C++ 谷歌测试
【发布时间】:2019-09-06 16:49:20
【问题描述】:

我有使用这样的命令构建的 Visual Studio Code、C++ bazel 测试

bazel test //tensorflow/lite/kernels:xxx_test --test_arg=gtest_filter=XXXTest -c dbg

然后我可以像这样使用 gdb 调试它

gdb ./bazel-bin/tensorflow/lite/kernels/xxx_test.runfiles/org_tensorflow/tensorflow/lite/kernels/xxx_test

但这是在 VS Code 中正确调试它的另一种方法吗? 我为 Google Tests 安装了插件,但没有看到它们,也没有 gtest.exe。

谢谢!

【问题讨论】:

  • 没有“gtest.exe”是什么意思?您可以在launch.json 文件中的"program" 下指定要调试的程序(您的.../kernels/xxx_test)。
  • 是的,我就是这样做的。但这很笨拙。我在命令行中运行,然后将此行复制到我的启动中。我曾经工作过 gtests,并且有一个非常好的插件,当我能够看到所有测试等时

标签: c++ tensorflow visual-studio-code googletest bazel


【解决方案1】:

使用 Google 测试适配器插件时,以下步骤适用于我。转到Debug -> Add Configuration...为你添加一个新的启动目标launch.json文件并填写"program"下的程序路径(注意相对路径对我来说在这里不起作用,所以也许你需要填写完整路径):

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "gtest",
            "type": "cppdbg",
            "request": "launch",
            "program": "(maybe insert complete path)/bazel-bin/tensorflow/lite/kernels/xxx_test.runfiles/org_tensorflow/tensorflow/lite/kernels/xxx_test",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "",
            "miDebuggerPath": "/usr/bin/gdb"
        }
    ]
}

通过在代码中设置断点然后按F5,检查您是否可以正确调试应用程序。

如果它有效,请转到 Google 测试适配器插件并将鼠标悬停在左侧(通常显示可用测试的位置)和显示“GOOGLE TESTS”的栏中(带有所有运行和停止按钮)按双箭头<-> 并在上述调试配置上设置挂钩。现在按下Run All 应该可以正常工作了。

让我知道它是否有效,如果无效,哪些步骤无效。

【讨论】:

  • 太棒了!完美运行。多谢。我尝试了另一个插件
猜你喜欢
  • 1970-01-01
  • 2023-03-27
  • 2019-08-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-04
相关资源
最近更新 更多