使用addr2line分析代码错误

    xiaoxiao2021-03-25  183

    编写一个程序wang.c内容如下: #include <stdio.h>      int func(int a, int b)   {     return a / b;   }      int main()   {     int x = 10;     int y = 0;     printf("%d / %d = %d\n", x, y, func(x, y));     return 0;   }   测试流程: gcc -o wang -g wang.c 执行生成的wang程序。会发现出错。如下所示: Floating point exception (core dumped) 利用addr2line找到出错的位置。 1、先执行 dmesg | grep "wang"找到执行错误提示如下: [2877299.687745] wang[29936] trap divide error ip:400506 sp:7fffe31a2ef0 error:0 in wang[400000+1000] 2、找到它的ip为400506,利用addr2line -e wang 400506这条命令,显示如下。 /home/wangkang/wang/C/addr2line/wang.c:5 说明addr2line这个代码处第五行出错,即return a/b处。
    转载请注明原文地址: https://ju.6miu.com/read-3150.html

    最新回复(0)