c - 如何跟踪所有本地函数调用和退出,并将其记录到文件中以供查看

标签 c linux debugging call trace

我想在Linux下跟踪一个C程序,把所有的函数调用和返回以树的形式记录下来。 例如源码:

void a ()
{
    printf("a\n");
}
void b ()
{
    printf("b\n");
}

void c ()
{
    a();
    b();
}

int main()
{
    a();
    b();
    c();
}

我想要如下输出:

call main
    call a
    exit a
    call b
    exit b
    call c
        call a
        exit a
        call b
        exit b
    exit c
exit main

这是一个理想主义的输出。我只想获取本地函数调用和返回的所有过程,所以也欢迎类似的输出。

最佳答案

gcc -finstrument-functions 完成我的工作

关于c - 如何跟踪所有本地函数调用和退出,并将其记录到文件中以供查看,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22655948/

相关文章:

c - 链接 OpenSSL 时不引用 BIO 函数

c - 如何观察一个变量?

WCF REST 调试

c - 使用文件整数输入进行添加

linux - 与包 filesystem-3.2 中的文件冲突

c - 在 C 语言中,为什么 %s 没有赋值就工作?

linux - 当服务器负载高于 20 时运行两个脚本的 Shell 脚本

javascript - 在 VS Code "Debug Console"中,运行 JavaScript 等待函数

c - 参数类型对此链接类型的函数无效

c++ - C99 和 C++ 的内联函数的兼容定义