gpt4 book ai didi

c++ - LLDB 有时显示 vector 数据,有时不显示

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:23:01 25 4
gpt4 key购买 nike

在调试的大多数情况下,如果我有一个 vector (在 Xcode 9 中),我会看到一个索引列表,代表 vector 中的值。

需要 enter image description here

其他时候,我得到这种无用的表示:

不受欢迎 enter image description here

我无法弄清楚是什么条件导致 LLDB 以不希望的方式显示 vector 。

问题
是什么导致了不良行为?是否可以在不重写代码的情况下修复它?这是 LLDB 中的错误吗?

这是一个重现不良行为的简短代码示例:

#include <iostream>
#include <vector>

std::vector<int> createVector()
{
std::vector<int> v = { 1, 2, 3 };
return v;
}

int main(int argc, const char * argv[])
{
const auto& v = createVector();
std::cout << v.front() << std::endl;
return 0;
}


这是 Xcode 项目的链接:
http://s000.tinyupload.com/?file_id=21020556485232357417

最佳答案

这是 std::vector 数据摘要和格式化程序如何为引用变量工作的已知错误。请注意,在 expr v 中,表达式解析器实际上将 v 视为直线 vector ,而不是对 vector 的引用...这就是打印有效的原因。

关于c++ - LLDB 有时显示 vector 数据,有时不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47852520/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com