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

find out what functions are used inside object file functions

假设我有 linux 个具有两个函数的内核模块

function A 从内核调用 function c

function B 从内核调用 function d

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

what I want to know is which function is used inside which function

objdump -dr kernel_module.ko

会告诉你你想要什么。

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

首先找出二进制文件的入口地址:

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

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

gdb my-binary

现在使用你从readelf得到的入口点在my_binary的执行中打断点,以便能够分析它。

break * [address from readlf]

运行 gdb 并命中断点。

run

现在您实际上可以继续研究函数 运行:

info functions