如何在c中打印函数的调用序列?

时间:2017-08-01 08:13:25

标签: c linux gdb

我正在阅读Apache httpd源代码,我想知道什么时候发出请求,首先调用哪个函数,然后是哪个函数,依此类推,是否有一些简单的方法可以做到这一点?

这样的东西
MakeAppx.exe

2 个答案:

答案 0 :(得分:1)

在每个函数的开头加上printf语句

printf("Called function: %s\n", __func__);

这将在调用该函数时打印函数的名称,这样您就可以知道函数调用序列。

答案 1 :(得分:1)

不是简单方式没有,但有多种可能性:

  • 如果您可以运行代码,那么使用调试器或分析器来完成它可以帮助您了解正在发生的事情
  • 如果您可以运行代码,则可以添加跟踪以了解功能流程
printf(">>> entering %s\n", __func__);
printf("<<< leaving %s\n", __func__);
  • 如果你不能运行代码,那么像ctags或cscope这样的工具可以帮助你看到哪些函数被调用(或像eclipse或intellij这样的IDE)