找出目标文件函数内部使用了哪些函数

时间:2018-07-20 17:09:01

标签: linux linux-device-driver elf

假设我有两个功能的linux内核模块

function A从内核调用function c

function B从内核调用function d

现在,如果我通过readelfnm之类的工具传递此模块的目标文件,我可以看到二进制文件中使用的符号,但我想知道的是哪个函数中使用了哪个函数?

2 个答案:

答案 0 :(得分:2)

  

我想知道哪个函数在哪个函数内使用

objdump -dr kernel_module.ko

将显示您想要的内容。

答案 1 :(得分:1)

您也可以尝试gdb。 这是一个基于文本的调试器,您可以使用它来分析和研究二进制文件。

首先了解二进制文件的入口地址:

readelf -h my-binary | grep "Entry point"

然后启动加载了二进制文件的gdb:

gdb my-binary

现在,使用从readelf获得的入口点在my_binary的执行中创建一个断点,以便能够对其进行分析。

break * [address from readlf]

运行gdb并击中断点。

run

现在您可以通过运行以下命令继续研究功能了

info functions