本文主要是介绍利用dmesg和addr2line来重现bug,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
利用dmesg和addr2line来重现bug
有些时候,我们的程序crash了,但是我们没有保存core dump信息,这时如果我们想要知道程序在哪个位置出错,就不是那么容易了。
下面有一种方法,可以大致判断出程序出错的大致位置。1.用dmesg查找出错的代码段地址。
命令格式:
- dmesg | grep program_name
- $ dmesg | grep test_prog
- [103936.227079] test_prog[29319]: segfault at 40078c ip 0000000000400634 sp 00007fffe54d4680 error 7 in test_prog[400000+1000]
2.用addr2line将地址解析成函数名。
紧接上面的例子:
- $ addr2line -e ./test_prog 0000000000400634 -f
- _Z9errorFuncv
- ??:0
本文转自:http://blog.csdn.net/cjfeii/article/details/20386457
这篇关于利用dmesg和addr2line来重现bug的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!