VSCode CMakeTools调试器:为不同目标指定独立调试配置
为CMakeTools目标单独配置调试参数
可以通过两种方式实现不同目标的差异化调试配置:
方法一:通过CMake目标属性传递配置
直接在CMakeLists.txt中为主应用程序目标设置调试相关属性,CMakeTools会自动识别这些属性并生成对应调试配置,测试目标保持默认即可:
# 主应用程序目标 add_executable(main_app src/main.cpp) # 设置调试时的工作目录(假设配置文件存放在项目根目录) set_target_properties(main_app PROPERTIES VS_DEBUGGER_WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}" ) # 若需通过环境变量指定配置文件路径,可添加: # set_target_properties(main_app PROPERTIES # VS_DEBUGGER_ENVIRONMENT "CONFIG_FILE=${PROJECT_SOURCE_DIR}/config.ini" # ) # 测试目标 add_executable(test_app tests/test.cpp) # 测试目标无需额外配置,使用默认调试参数
方法二:在VS Code的launch.json中自定义配置
手动编写调试配置,为每个目标单独指定参数,并通过cmake.target关联对应的CMake目标:
{ "version": "0.2.0", "configurations": [ { "name": "Debug Main App", "type": "cppdbg", "request": "launch", "program": "${command:cmake.launchTargetPath}", "stopAtEntry": false, "cwd": "${workspaceFolder}", // 确保主程序能读取到项目根目录的配置文件 "externalConsole": false, "MIMode": "gdb", "setupCommands": [ { "text": "-enable-pretty-printing", "ignoreFailures": true } ], "preLaunchTask": "${command:cmake.buildTarget}", "cmake.target": "main_app" // 关联主程序CMake目标 }, { "name": "Debug Test App", "type": "cppdbg", "request": "launch", "program": "${command:cmake.launchTargetPath}", "stopAtEntry": false, "cwd": "${command:cmake.launchTargetDirectory}", // 测试目标使用编译目录即可 "externalConsole": false, "MIMode": "gdb", "setupCommands": [ { "text": "-enable-pretty-printing", "ignoreFailures": true } ], "preLaunchTask": "${command:cmake.buildTarget}", "cmake.target": "test_app" // 关联测试CMake目标 } ] }
配置完成后,在VS Code调试面板选择对应的配置项,即可启动对应目标的调试——主程序会自动加载指定路径的配置文件,测试目标则使用默认参数运行。
内容的提问来源于stack exchange,提问作者glades
相关产品推荐
相关产品推荐

