将GCC升级到4.8之后,使用旧版本的gdb,在调试时会出现以下2个问题:
1. 编译选项设为-g -O0,但是cgdb进去时不在main函数入口处。
2. 提示No symbol "XXXXX" in current context
以上问题是由于GCC 4.8使用dwarf4(gcc.gnu.org/gcc-4.8/changes.html),而GDB不识别。
解决方法有2种:
1. 升级GDB
2. 编译时将-g改为-gdwarf-2. 此时,使用-g -O0没有问题。
将GCC升级到4.8之后,使用旧版本的gdb,在调试时会出现以下2个问题:
1. 编译选项设为-g -O0,但是cgdb进去时不在main函数入口处。
2. 提示No symbol "XXXXX" in current context
以上问题是由于GCC 4.8使用dwarf4(gcc.gnu.org/gcc-4.8/changes.html),而GDB不识别。
解决方法有2种:
1. 升级GDB
2. 编译时将-g改为-gdwarf-2. 此时,使用-g -O0没有问题。