GDB 其实可以很强大!【From My Baidu Space】
GDB 其实可以很强大!
不得不说,除了竞.价.排.名,度娘算是个不错的地方。
刚去回答一个关于gdb调试动态链接的问题。发现自己其实掌握的并不好,再加上一年没做linux下的项目了。很多命令都就着大米饭吃掉了。去找了个帖子,整理一下。
一、动态库的编译
编码实现 .h .cpp。编译动态库:g++ get.cpp -shared -g -DDEBUG -o libggg.so
二、主调函数的编译。
动态库已和主调在同一目录: g++ pk.cpp -o app -Wall -g -libggg
如果需要指定动态库所在目录:g++ pk.cpp -o app -Wall -g -libggg -L`pwd`
三、代码跟踪
断点到动态库函数调用处,list命令查看动态库的源码。
找不到动态库gdb提示:
/data/example/c/app: error while loading shared libraries: libggg.so: cannot open shared object file: No such file or directory
Program exited with code 0177.