如何在LLDB中打印std::vector<std::string>的全部内容
LLDB批量打印std::vectorstd::string内容的解决办法
方法1:用循环表达式批量输出
直接通过LLDB的表达式执行循环,逐个打印每个元素的字符串内容:
expr for (int i = 0; i < myVector.size(); ++i) { printf("%d: %s\n", i, myVector[i].c_str()); }
这条命令会按索引顺序输出所有65个元素的内容,清晰直观。
方法2:自定义std::string类型摘要(长期可用)
如果经常遇到Summary Unavailable的问题,可以给std::string设置自定义摘要,让p myVector直接显示元素内容:
type summary add -x "std::string" --summary-string "${var.c_str()}"
设置完成后,再执行p myVector,就能看到每个vector元素对应的字符串,无需单独调用c_str()。
方法3:使用frame variable命令的格式化选项
尝试用frame variable(可缩写为fv)命令配合格式化参数,绕过默认摘要限制:
fv -f myVector
或者使用更详细的类型展示:
fv myVector -T
内容的提问来源于stack exchange,提问作者A. K.
相关产品推荐
相关产品推荐

