检测Linux内核函数

时间:2018-04-26 19:34:22

标签: gcc linux-kernel instrumentation

我正在寻找一种在Linux内核中检测函数的方法。似乎GCC的-finstrument-functions标志允许检测,但有没有办法只使用编译器指令(即函数属性)来检测特定的Linux函数,而不是检测所有函数?

似乎KProbe还具有仪器功能,但KProbe维护了一个黑名单功能,不允许监控这些功能,导致仪器范围有限。

我在x86_64上运行内核版本为4.8.11的Ubuntu-16.04。

检测的目的是通过设置和清除标志来监视目标函数的进入和退出。

1 个答案:

答案 0 :(得分:0)

答案取决于它。然而,注入并不像人们想象的那么简单。

特别是,您可以对特定C文件使用-finstrument-functions,然后使用属性((no_instrument_function))排除您不想要检测的

的示例

您必须跟踪抢占和快速呼叫,您必须确保不会意外停止或删除仪器。哦,你还必须跟踪内核自行造成的任何随机堆栈布局。