基于Yocto远程开发:如何让cmake-tools在同一终端保留命令输出?
CMake-Tools终端输出控制与Yocto远程调试日志排查方案
一、固定终端输出并保留命令记录
修改VS Code的settings.json配置,强制cmake-tools复用集成终端、保留历史输出:
- 设置
"cmake.alwaysUseTerminal": false:停止每次启动目标时新开终端窗口,复用现有集成终端 - 设置
"cmake.clearOutputBeforeBuild": false:禁止执行命令前清屏,保留所有历史操作记录 - 开启
"cmake.verbose": true:输出完整的构建、运行命令细节,包括测试二进制文件的路径
配置片段示例:
{ "cmake.alwaysUseTerminal": false, "cmake.clearOutputBeforeBuild": false, "cmake.verbose": true }
二、获取完整调试与操作日志
- CMake-Tools操作日志:打开VS Code的输出面板(快捷键Ctrl+Shift+U),在面板顶部的下拉菜单中选择
CMake/Build或CMake/Debug,即可查看插件执行的所有命令和中间日志 - 远程调试详细日志:在调试launch配置中添加日志开关,示例:
调试时会在调试控制台输出GDB与目标机gdbserver的交互细节,定位调试失败原因{ "name": "Remote Debug", "type": "cppdbg", "request": "launch", // 其他配置项... "logging": { "engineLogging": true, "trace": true } } - 测试二进制路径查看:除了开启
cmake.verbose让终端输出路径外,还可以在CMakeLists.txt中添加打印语句:
构建过程中会直接输出目标二进制的绝对路径message(STATUS "Test binary path: $<TARGET_FILE:your_test_target_name>")
三、Yocto远程调试环境补全
确保Yocto构建的镜像支持远程调试:
- 在
local.conf中添加:
生成包含调试符号的根文件系统和调试包DEBUG_BUILD = "1" EXTRA_IMAGE_FEATURES += "dbg-pkgs" - 确认目标机已安装
gdbserver,且开发机使用的GDB版本与目标机gdbserver版本一致,避免版本不兼容导致调试失败
内容的提问来源于stack exchange,提问作者konradk
相关产品推荐
相关产品推荐

