美文网首页
macOS VSCode 调试C++ STL容器显示size==

macOS VSCode 调试C++ STL容器显示size==

作者: neroop | 来源:发表于2019-11-28 02:10 被阅读0次

    在macOS下使用VS code进行C++调试时,碰到vector、set、map等类的内容无法正常显示,只显示为size == 0

    在VS code的Github issues有许多讨论,大体提出了两种解决方案。

    方案一

    安装CodeLLDB插件,使用简单,只需将launch.jsontype设置为lldb即可(原生类型一般为cppdbgcppvsdbg)。为了标准输入与输出,另外还需要添加terminal字段。

        {
          "name": "(lldb) CodeLLDB plugin",
          "type": "lldb", // 使用CodeLLDB插件进行Debug
          "request": "launch",
          "preLaunchTask": "clang++ compile",
          "environment": [],
          "cwd": "${workspaceFolder}",
          "program": "${workspaceFolder}/build/${fileBasenameNoExtension}",
          "args": [],
          "stopAtEntry": false,
          "MIMode": "lldb",
          "terminal": "integrated"  // CodeLLDB插件调出Terminal重定向标准输入
        },
    

    方案二

    使用lldb-mi,在launch.jsonmiDebuggerPath字段指定路径/path/to/lldb-mi

        {
          ...
          ...
          "MIMode": "lldb",
          "miDebuggerPath": "/path/to/lldb-mi"
          ...
          ...
        },
    

    但遗憾的是Xcode 11貌似移除了lldb-mi,只能向前使用Xcode 10,lldb-mi位于/Applications/Xcode.app/Contents/Developer/usr/bin/lldb-mi

    当然也可以通过brew安装llvm的方式,获取lldb-mi

    brew install llvm
    

    但在我的MBP环境中使用brew安装的lldb-mi有BUG,不能使用,暂未解决,有空再倒腾。

    Reference

    VS Code Github issue#2389
    VS Code Github issue#1768

    相关文章

      网友评论

          本文标题:macOS VSCode 调试C++ STL容器显示size==

          本文链接:https://www.haomeiwen.com/subject/jlkvwctx.html