V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
rednose1037
V2EX  ›  C++

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

  •  
  •   rednose1037 · 31 天前 · 1502 次点击

    image.png

    • mac 不维护 gdb ,不想手动配置特定版本;默认使用 libc++,我改成 libstdc++,
    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")
    
    • 一大堆找不到 stl 报错,路径确认没问题,没搞来
    • 累了,。。。换 ide 就不用建议了,就想知道 mac clion 这个够吧 调试怎么才能看 stl 的值...
    第 1 条附言  ·  27 天前
    clion 2024.1 版本的 bug ,下载更新到 2024.3 解决了
    7 条回复    2025-02-05 10:29:28 +08:00
    nightwitch
        1
    nightwitch  
       31 天前
    标准库(libc++/libstdc++),编译器(gcc/clang), 调试器(gdb/lldb)混搭着使用就这样。能编过,但是调试起来体验不好。
    统一用 clang 的工具链和标准库,或者统一用 gcc ,就没这问题了
    MoYi123
        2
    MoYi123  
       31 天前
    直接用 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
        3
    rednose1037  
    OP
       30 天前
    @MoYi123 #2 mac 用不了 gdb ,是 lldb 🥲
    nightwitch
        4
    nightwitch  
       30 天前
    brew 装一个就有了吧
    rednose1037
        6
    rednose1037  
    OP
       30 天前
    @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
        7
    MoYi123  
       27 天前
    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 就行了.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1087 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 22:58 · PVG 06:58 · LAX 14:58 · JFK 17:58
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.