利用dmesg和addr2line来重现bug

Publish: November 13, 2015 Category: 默认分类,Shell,C/C++ No Comments

1. 在linux 下执行make 生成可执行文件test 和动态库libtest.so, 其中test执行时会链接libtest.so

2. 在终端下运行程序test 时会崩溃退出,报segment falut。此时用dmesg 找出程序信息的退出信息

dmesg | grep "test" -i
# 输出信息如下:
[6006.438055] test[2106] segfault at a0df3f64 ip b6f5d74c sp a0df3f68 error 6 in libtest.so[b6eeb000+18d000]

3. 确认哪个文件发生的崩溃问题,确认方法如下:

    在dmesg信息里找到关键字in, in 后面为发生崩溃的文件名

阅读剩余部分...