debug std::string 遇到的问题
toolchain: cmake make clang++ lldb
以下代码中声明了全局变量 start, end, layer
1 | static std::vector<std::string> layer; |
对上全局变量使用lldb debug时,出现如下错误


经过搜索 stackoverflow 有人建议在 CMakeFile.txt 中添加如下一行
1 | set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -D_GLIBCXX_DEBUG") |
lldb 错误消失但是逻辑错误仍存在,参考类似的问题初步猜测与 libstdc++ 中 string 实现有关.
新建工程测试发现无误.
再将 toolchain 更换为 g++ lldb 后问题消失,debuger 更换为 gdb 也正常,看来是 clang++ 实现有误.