参考网址:
(132条消息) addr2line 输出为?:0可能原因_qq_23101811的博客-CSDN博客
(132条消息) addr2line命令_残阳的博客-CSDN博客_addr2line命令用法
(132条消息) Linux命令之dmesg命令_浪子吴天的博客-CSDN博客_dmesg
(133条消息) addr2line排查地址_AK_Coffee的博客-CSDN博客_addr2line地址
使用流程
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| gcc -o test -g test.c
dmesg -C
./test
dmesg [3540868.730553] traps: test[4331] trap divide error ip:55d347e5067b sp:7ffdb3499f50 error:0 [3540868.730567] in test[55d347e50000+1000]
ip: 55d347e5067b - 55d347e50000 = 067b
/var/testhelper/programsymbols/tes.c:8
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| dmesg -C cd bin && ./SlamTest dmesg > /tmp/dmesg.txt
grep -m 1 -E "SlamTest\[[0-9]+\]: segfault" /tmp/dmesg.txt
addr_end=$(grep -m 1 -E "SlamTest\[[0-9]+\]: segfault" /tmp/dmesg.txt | awk -F 'ip ' '{print $2}' | awk -F ' ' '{print $1}')
addr_begin=$(grep -m 1 -E "SlamTest\[[0-9]+\]: segfault" /tmp/dmesg.txt | awk -F 'in SlamTest' '{print $2}' | awk -F '[' '{print $2}' | awk -F ']' '{print $1}')
addr_begin=$(echo $addr_begin | awk -F '+' '{print $1}')
addr_diff=$((16#$addr_end-16#$addr_begin))
addr_diff_hex=$(printf "%x" $addr_diff)
addr2line -a -C -e SlamTest -f $addr_diff_hex
|