gdb 如何调试release版本
来源:互联网 发布:安知玉如意说的是什么 编辑:程序博客网 时间:2024/05/21 14:47
最近要发布release版本,直接运行时程序就挂掉了,于是乎就想gdb一下,结果发现只能看到堆栈,查了一些博文,将调试方法总结如下:
1、进入debug版本的目录,将debug版本中相应动态库或执行程序的符号表导出,命令如下
objcopy --only-keep-debug 动态库名或可执行程序名 导出的符号文件名
例:objcopy --only-keep-debug libDBCommon.so libDBCommon.so.debug
如果需要调个动态库,每个动态库都执行一次上面的步骤,导出的符号名当然不能一样啦
3、将符号文件copy到release版的目录下(网上也有说在debug时可以用命令指定)
4、进入release目录,在release版的动态库或执行文件中添加调试信息文件链接,命令如下
objcopy --add-gnu-debuglink=符号文件名 对应的动态库名
例:objcopy --add-gnu-debuglink=libDBCommon.so.debug libDBCommon.so
调试多个动态库时执行多次,注意这时候原本release的动态库大小会增大一些
5、确认调试信息文件链接,命令如下
objdump -s -j .gnu_debuglink 动态库名
例:objdump -s -j .gnu_debuglink libDBCommon.so
调试多个动态库时执行多次
6、启动调试
gdb -q --symbol=第一个符号文件名:第二个符号文件名:第三个符号文件名 --exec=可执行程序名
例:gdb -q --symbol=libDBCommon.so.debug:libDBNodeManager.so.debug:libcoremodule.so.debug --exec=scadaserver
符号文件名可以是多个(动态库或执行程序的),中间用冒号隔开
- gdb 如何调试release版本
- gdb远程调试release版本
- Release版本如何调试
- Release版本如何调试
- 转载 如何调试release版本
- gdb 版本release notes
- GDB调试release程序
- GDB调试release程序
- GDB调试release程序
- GDB调试release程序
- 如何调试程序的 Release 版本
- 如何调试程序的Release版本?
- 如何调试程序的 Release 版本
- 如何调试程序的 Release 版本?(转)
- 如何在VC下单步调试Release版本
- 如何调试程序的 Release 版本
- 如何调试程序的 Release 版本
- 如何调试程序的 Release 版本
- excel替换指定列的文本
- C++ 排序函数 sort()的用法
- 容器的一些简单用法
- 开始
- android.database.sqlite.SQLiteException: Failed to change locale for db '/storage/sdcard0/xx/xxx.db'
- gdb 如何调试release版本
- Android中跨进程通信传递Parcelable对象时出现android.os.BadParcelableException: ClassNotFoundException when unmarsh
- hdu 1870 愚人节的礼物
- nyoj-915-+-字符串
- EMU8086 简单汇编程序&实现5个BYTES的数据相加
- (行为型模式九)备忘录模式
- C++中new、delete 与new[]、delete[]
- win8下安装pip
- 欢迎使用CSDN-markdown编辑器