首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用trace查看函数调用关系|分析Linux性能

抓取函数调用流程关系 抓取函数耗时 抓取代码片耗时 抓取函数里每个子函数时间戳 抓取事件信息 trace是内核自带的工具,相比于perf工具,trace只管抓trace数据并没有分析,perf在trace...但是我们现在就想看一下底层多调用关系,所以使用trace抓一下数据是非常有必要的,还可以分析一下驱动性能。...set_graph_function设置要清晰显示调用关系的函数,显示的信息结构类似于 C 语言代码,这样在分析内核运作流程时会更加直观一些。...在使用 function_graph 跟踪器时使用;缺省为对所有函数都生成调用关系序列,可以通过写该文件来指定需要特别关注的函数。...function_graph跟踪器可以显示类似 C 源码的函数调用关系图,这样查看起来比较直观一些;可以通过文件 set_grapch_function 显示指定要生成调用流程图的函数。

3.5K30

静态分析C语言生成函数调用关系的利器——calltree

这个时候我们可以使用calltree工具对代码进行静态分析,然后产生调用关系树,使得我们可以对代码的构成有个初步的认识。这样可以让我们站在高处,俯览全局,制定出一个着实可行的阅读理解方案。...这段问题大意是:calltree是一个针对C语言代码的静态分析工具。它可以以图像的形式产出函数的调用关系。...特别是其可以指定函数名去分析,这个原生的功能非常重要。因为一般在开源项目中,如果对全局或者某个文件进行分析,可能分析出非常杂乱的调用关系图。导致分析出来的结果对代码的解读没有一点帮助。...如果希望了解cflow的使用方法,可以参见《静态分析C语言生成函数调用关系的利器——cflow》。         接下来我们将讲解其编译过程。...而cflow只能输出ASCII的调用关系图,不借助中间工具不能转成dot。         当然cflow也有它的好处,我们将在《静态分析C语言生成函数调用关系的利器——cflow》介绍。

6.8K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    静态分析C语言生成函数调用关系的利器——cflow

    除了《静态分析C语言生成函数调用关系的利器——calltree》一文中介绍的calltree,我们还可以借助cflow辅助我们阅读理解代码。...(转载请指明出于breaksoftware的csdn博客) cflow的说明和安装         cflow是一款静态分析C语言代码的工具,通过它可以生成函数的调用关系。...我只列出我觉得有意思的几个参数:         -T输出函数调用树状图         -m指定需要分析的函数名         -n输出函数所在行号         -r输出调用的反向关系图        ...文本输出         最简单的使用方法是以ASCII文本的方式输出结果,比如 cflow -T -m main -n timer.c         其结果是一个包含文件名和函数所在代码行号的调用关系图...puts() | \-ev_break() +-ev_timer_start() \-ev_run()         然而,对于有一定代码量的项目,我们不会使用ASCII文本的方式去查看函数调用关系

    3.5K20

    静态分析C语言生成函数调用关系的利器——cflow(二)

    在《静态分析C语言生成函数调用关系的利器——cflow》一文中,我们介绍了如何使用cflow查看C语言代码中函数的调用关系。...目前市面上介绍cflow的例子都比较简单(包括我写的那篇《静态分析C语言生成函数调用关系的利器——cflow》),比如函数都在一个文件里的,且调用关系也不复杂。...于是本文就开始上难度,不仅要分析多层调用,还要结构复杂。这篇可能是全网目前能找到的最复杂使用cflow去做大型项目源码分析的例子了。 环境准备 我的测试环境是Ubuntu 12。...高级分析 高级分析可以将main函数所有调用的函数的底层调用栈也会显示出来。但是整个过程还是蛮曲折的。本文主要讲解如何挖坑和填坑。...坑:不能显示main函数所有调用函数的调用栈 我们可以给cflow指定一个文件,分析出其调用栈。

    30310

    静态分析C语言生成函数调用关系的利器——cally和egypt

    在《静态分析C语言生成函数调用关系的利器——cflow》和《静态分析C语言生成函数调用关系的利器——cflow(二)》中,我们介绍了使用cflow直接分析c语言源码导出调用栈的方法。...我们还是以《静态分析C语言生成函数调用关系的利器——cflow(二)》中的libevent库为例。...(还是需要先把整个工程编译一遍,具体见《静态分析C语言生成函数调用关系的利器——cflow(二)》中坑3:缺失编译时产生的文件)。 gcc ./test/test-time.c \ -I....且我们并没有生成它们的RTL文件,所以不能分析出完整的调用关系。 为了展现更加具体的调用关系,我们将进行一些改造,以获得更多RTL进行分析。...总结 egypt比cally优秀,可以分析出更加复杂的调用关系

    16610

    静态分析Golang语言生成函数调用关系的利器——go-callvis

    不同于之前分析C语言项目的工具,go-callvis还是很方便使用。只要把两项工作做好就能顺利的使用。 go使用1.19及以上版本。 要在被分析工程的根目录执行分析指令。...go-callvis默认是寻找main包名,并以此为入口分析代码调用关系的。...分析其他包 如果我们希望分析其他包名,则需要使用-focus指定,而且路径要制定到包所在的目录(注意不是根目录),并且还要添加-algo static。...但是大量的信息也会带来一些干扰,我们可以通过增加一些参数,忽略一些不太重要的信息,来让调用框架清晰起来。...-nostd表示标准库的包就不用展现了,这个可以省去大量最后一层的调用关系;-nointer则表示忽略非导出方法,这样我们就关注于包之间调用关系即可。

    32610
    领券