美文网首页C/C++
gdb list指向的源文件错误

gdb list指向的源文件错误

作者: cx7 | 来源:发表于2019-04-19 18:00 被阅读0次

在ubuntu下调试libco 调试example_thread时 遇到这样的问题
gdb list显示的不是对应的源文件example_thread.cpp 而是指向了另一个libco的源文件coctx_swap.S
排查后发现是GCC的代码优化等级影响了调试符号的生成

set(CMAKE_C_FLAGS ${CMAKE_C_FLAGS} -g -fno-strict-aliasing -O2 -Wall -export-dynamic -Wall -pipe  -D_GNU_SOURCE -D_REENTRANT -fPIC -Wno-deprecated -m64)

将代码优化关闭后解决

set(CMAKE_C_FLAGS ${CMAKE_C_FLAGS} -g -fno-strict-aliasing -O0 -Wall -export-dynamic -Wall -pipe  -D_GNU_SOURCE -D_REENTRANT -fPIC -Wno-deprecated -m64)

得出结论 : gdb调试debug代码时,应该关闭GCC的编译器代码优化.

相关文章

网友评论

    本文标题:gdb list指向的源文件错误

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