假设我有CMakeLists.txt
add_executable(mytarget main.cpp)
enable_testing()
add_test(mytarget_test0 mytarget -option0)
Run Code Online (Sandbox Code Playgroud)
有什么简单的方法如何使用某些特定CTest测试的所有命令行选项在GDB中运行mytarget?(除了在CMakeLists中搜索测试,然后手动将add_test参数复制粘贴到命令行之外?)
现实生活中的场景:我使用ctest运行所有测试,但失败了,我想在调试器中快速打开它。
在其他构建系统中,有命令行参数可使用gdb,例如在Meson meson test --gdb testname
中的bazel中bazel --run_under=gdbserver
。我没有找到与CTest类似的东西
可以使用参数获取测试命令:
ctest -R $regex_matching_test -V -N
Run Code Online (Sandbox Code Playgroud)
作为输出,您将得到类似:
Test project ../cmake-build-debug-gcc7
Constructing a list of tests
Done constructing a list of tests
1: Test command: ../cmake-build-debug-gcc7/my_tool "-v" "test0"
Test #1: my_tool_test0
Total Tests: 1
Run Code Online (Sandbox Code Playgroud)
然后使用regexp可以获取gdb的命令行参数
归档时间: |
|
查看次数: |
2242 次 |
最近记录: |