gpt4 book ai didi

c++ - 为什么 lldb pretty-print 不适用于 MacOS 上的 GNU GCC 编译程序?

转载 作者:行者123 更新时间:2023-12-05 04:53:02 24 4
gpt4 key购买 nike

有人知道吗,为什么 lldb pretty printers 不适用于 MacOS 上的 GNU GCC 编译程序?

我有一个简单的 C++ 程序,我使用 GCC 10.2(来自 Homebrew)编译了以下 CXX_FLAGS : --std=c++17 -g -O0

#include <vector>

int main() {
std::vector<int> v = {1, 2, 3};
std::cout << v[0];
return 0;
}

当我尝试检查变量 v 时,我得到以下结果:

(vector<int, allocator<int> >) $0 = {
_Vector_base<int, allocator<int> > = {
_M_impl = {
_Vector_base<int, allocator<int> >::_Vector_impl_data = {
_M_start = 0x00000001005062a0
_M_finish = 0x00000001005062ac
_M_end_of_storage = 0x00000001005062ac
}
}
}
}

没有std:: vector 前的前缀,因此没有为该类型添加 pretty-print (默认情况下它处理 "^(std::__1::)vector<.+>$" )。AFAIU,默认情况下,LLDB 中的 pretty-print 为 libc++ 启用,而 GCC 使用 libstdc++ .

有人知道如何解决这个问题并让 pretty-print 为 LLDB 中的 GNU GCC 编译程序工作吗?

最佳答案

-gdwarf-3 选项解决了调试过程中缺少 std:: 前缀的原始问题,因此使用该标志 pretty-print 可以正常工作。

附言-gdwarf-4 让 pretty-print 也能正常工作

关于c++ - 为什么 lldb pretty-print 不适用于 MacOS 上的 GNU GCC 编译程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66225829/

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