LLDB调试字符串显示“summary unavailable”问题求助
1. 检查CLion调试配置
- 打开CLion设置(快捷键
Cmd+,),进入Build, Execution, Deployment > Debugger > Data Views > C/C++ - 勾选
Enable auto-load of external debug information和Enable LLDB data formatters,恢复默认设置后重启CLion
2. 加载LLDB标准库格式化脚本
在CLion的调试控制台里执行这条命令,强制加载libcxx的格式化脚本:
command script import /Applications/Xcode.app/Contents/SharedFrameworks/LLDB.framework/Versions/A/Resources/formatters/libcxx.py
如果找不到Xcode路径,先用xcode-select -p命令获取安装路径,替换上面的对应部分。
3. 调整编译调试选项
在CMakeLists.txt里加上完整的调试编译参数,避免优化导致变量无法解析:
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -O0") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g -O0")
-g生成完整调试信息,-O0关闭所有编译优化。
4. 添加自定义LLDB格式化规则
如果前面的方法都没用,手动给std::string和vector
- 打开CLion设置
Build, Execution, Deployment > Debugger > LLDB > Custom commands - 添加启动命令:
这条命令会直接显示字符串内容,vectortype summary add -w c++ std::string -s "${var.__r_.first.__value_.__data_}" type summary add -w c++ std::vector<std::string> -s "size = ${var.__size_}" -e会显示大小并允许展开查看所有元素。
5. 更新工具版本
你当前用的CLion 2022.2.5和clang 14.0.3版本偏旧,尝试更新CLion到最新稳定版,同时升级Xcode(clang会随Xcode更新),新版本通常会修复LLDB和标准库的调试兼容性问题。
内容的提问来源于stack exchange,提问作者Facundo Esparza
相关产品推荐
相关产品推荐

