记录一下:项目遇到使用clang++去编译一个项目,然后用gdb去调试。
在编译完成后,gdb启动时提示No debugging symbols found
查了很多原因,后来发现上面还有提示 如Dwarf Error: DW_FORM_strx1 found in non-DWO CU
再查了下Dwarf error,原来它是调试信息格式,再查下,也了解到调试信息格式有多到6个版本
于是去研究clang++的编译选项,发现确实可选,于是试了各种版本,终于在选择-gdwarf-4这个参数时,解决战斗。
总结:无论是gcc/g++ clang/clang++编译出来的信息需要用gdb来调试时都有可能遇到这样的问题,两边都有版本升级,就会导致里面的格式版本就可能不一样了。