gdb调试release版程序
2015-09-24 09:12
267 查看
有时debug版本程序运行的很稳定,但是relase版本运行出错,用gdb最多只能判断哪个函数出错了,对于函数比较大的,确实不好定位。gdb调试release版本时加入debug版的符号表就可以了。
objcopy --only-keep-debug test_d.out test.dbg 生成符号表,
然后调用gdb test_r.out 后使用symbol test.dbg 载入符号表,运行出错时就可以看到程序出错的位置了。
采用调用debug的符号表发现对于大工程文件还是不适合,位置经常错乱。没办法,只有通过打印以及return返回的方式来定位问题。后来发现是字符串越界了,release版运行严格多了。用snprint代替sprint就好了。
objcopy --only-keep-debug test_d.out test.dbg 生成符号表,
然后调用gdb test_r.out 后使用symbol test.dbg 载入符号表,运行出错时就可以看到程序出错的位置了。
采用调用debug的符号表发现对于大工程文件还是不适合,位置经常错乱。没办法,只有通过打印以及return返回的方式来定位问题。后来发现是字符串越界了,release版运行严格多了。用snprint代替sprint就好了。
相关文章推荐
- OpenCV参考手册之Mat类详解2
- MP3文件格式解析
- 深入理解Java:注解(Annotation)基本概念
- 报错:1130-host ... is not allowed to connect to this MySql server 开放mysql远程连接 不使用localhost
- linux之路开始啦
- Python操作Redis之key的查看与删除
- iOS开发-------涂鸦板(UIBezierPath 贝赛尔曲线)与 MVC初尝试
- SpannableStringBuilder连续调用setSpan时参数Object what不能使用同一个引用
- 第8章 线程池的使用
- 循环添加用户
- 【C语言】输入十个数求最大数
- Unity3D PoolManage
- html5中 data-*属性详解
- ubuntu 15.04 开机启用小键盘
- 懒人创造了方法
- Nagios客户端执行oracle检查脚本和远程server端不一致的问题
- java如何对文件追加写入【new FileOutputStream(file, true)】
- 协同过滤
- PowerDesigner导出表到word
- Mac10.8.5黑苹果HD3000VGA输出