作者
彭东林
pengdonglin137@163.com
背景
最近在分析内核问题时用了function_graph,用它来分析为什么应用的某个系统调用会返回错误。在分析的时候,根据function_graph的输出确定代码执行流程,但是有时又需要知道函数的返回值来进一步定位出错位置。目前获取函数返回值的方法可以用kprobe_events的kretprobe指令,或者使用bpftrace。如果函数太多的话,用起来也是很繁琐,不如让function_graph直接输出函数返回值。
目前仅在ARM64和X86_64上做过测试,用起来效果还可以。
目前这种方式的缺点是不会判断函数是否又返回值,即使是返回void,那么也会输出,所以具体返回值是什么含义需要
结合源码来分析。
Patch
下面是patch的链接:
用法