带有so库程序,如果崩溃点在so库内,崩溃后,按以下步骤定位崩溃位置:
1.执行命令“dmesg | tail”
[36428.047870] traps: hello[23808] trap divide error ip:7f488bc77752 sp:7ffeca9d5170 error:0 in libbreakdowndemo.so[7f488bc77000+1000]
2.执行命令“addr2line -e ./libbreakdowndemo.so 752”,其中752为第1步输出中的ip和动态库导入的起始位置计算出的偏移量:7f488bc77752-7f488bc77000=752。可得到以下信息,完美定位到崩溃位置。
/home/Projects/tmp/breakdowndemo.cpp:20