C程序调试分析

准备文件

编写代码

编写简单的递归函数,命名为factial.c

#include <stdio.h>
int main(){
    int sum = factial(5);
}

factial(int n){
    if(n==2){
        return 2;
    }
    return n * factial(n-1);
}

生成可调试文件

gcc factial.c -o factial -g

这里的-g参数方便调试,生成可执行文件fatial

进行调试

按下图方式进行操作
《C程序调试分析》
单步运行

《C程序调试分析》

显示当前的frame和stack

《C程序调试分析》

显示寄存器的值

《C程序调试分析》

可以看到递归调用的堆栈

《C程序调试分析》
代码地址

《C程序调试分析》

函数调用信息

《C程序调试分析》

    原文作者:NetScotte
    原文地址: https://segmentfault.com/a/1190000019298108
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞