mac clion 调试怎么才能看到 stl 容器的值

34 天前
rednose1037  rednose1037

image.png

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libstdc++ -I/opt/homebrew/Cellar/gcc/13.2.0/include/c++/13.2.0 -I/opt/homebrew/Cellar/gcc/13.2.0/include/c++/13.2.0/aarch64-apple-darwin23.4.0")
1526 次点击
所在节点   C++  C++
7 条回复
nightwitch
nightwitch
34 天前
标准库(libc++/libstdc++),编译器(gcc/clang), 调试器(gdb/lldb)混搭着使用就这样。能编过,但是调试起来体验不好。
统一用 clang 的工具链和标准库,或者统一用 gcc ,就没这问题了
MoYi123
MoYi123
34 天前
直接用 gdb terminal print 能打印出来吗? 先确定一下是 gdb 的问题还是 clion 的.

如果确定是 clion 的问题, 可以找 jetbrains 的人帮你,
我之前也遇到过 clion 里的 gdb 有错误, 但是 gdb print 是好的, 后来删了一个 tmp 下的缓存文件就好了.
https://youtrack.jetbrains.com/issue/CPP-41050/Debugging-with-GDB-in-remote-toolchains-is-broken-by-CLion-update
rednose1037
rednose1037
33 天前
@MoYi123 #2 mac 用不了 gdb ,是 lldb 🥲
nightwitch
nightwitch
33 天前
brew 装一个就有了吧
rednose1037
rednose1037
33 天前
rednose1037
rednose1037
33 天前
@nightwitch #4
```
jialage@jialagedeMacBook-Pro ~ % brew install gdb
==> Downloading https://formulae.brew.sh/api/formula.jws.json
==> Downloading https://formulae.brew.sh/api/cask.jws.json
gdb: The x86_64 architecture is required for this software.
Error: gdb: An unsatisfied requirement failed this build.
```
MoYi123
MoYi123
30 天前
lldb 和 gdb 和确定是不是 clion 的错误也没什么关系啊,
(lldb) print a
(std::unordered_map<int, std::vector<int> >) size=1 {
[0] = {
__cc_ = {
first = 1
second = size=3 {
[0] = 1
[1] = 2
[2] = 3
}
}
}
}

如果 lldb 能这样成功打印, 那肯定是 clion 的错误了, 直接找 jetbrains 就行了.

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1108491

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX