我想为我的C++项目运行一个命令,如.unittests_feature1 --gtest_filter=Feature1.test_int。
使用Visual Studio代码调试器。
当在Visual Studio中设置调试器会话时,我的配置是这样的,但当我启动Debugger时,它运行了unittests_feature1的所有内容,而不是Feature1.test_int。
{
"name": "Test_int",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/unittests_feature1",
"args": ["--gtest_filter=Feature1.test_int"],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": true,
"MIMode": "gdb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
但是当我启动Debugger时,它运行了unittests_feature1的所有内容,而不仅仅是Feature1.test_int.
如果我在命令行中手动运行
gdb --args .unittests_feature1 --gtest_filter=Feature1.test_int。
它可以工作,所以一些Visual Studio Code的配置可能是问题所在。
我今天遇到了一个类似的问题,我想在这里发一些经验来帮助大家。
我是用WSL2Ubuntu &VSCode Remote-WSL来调试一个带有GTest代码的C++程序。WSL2Ubuntu的默认终端是 zsh
. 我想通过参数 "--gtest_filter=OneD*
到测试可执行文件。
对我来说,成功配置的 args
的领域 launch.json
是。
"args": [
"--gtest_filter=OneD\\*"
],
问题配置的例子包括:
[--gtest_filter=\"OneD\\*\"]
[--gtest_filter=\"OneD*\"]
[--gtest_filter=OneD*]
似乎... zsh
导致了这个问题,因为 *
通过以下方式进行解析 zsh
首先在gdb &我的可执行文件之前。