假设我有两个功能的linux内核模块
function A
从内核调用function c
function B
从内核调用function d
现在,如果我通过readelf
和nm
之类的工具传递此模块的目标文件,我可以看到二进制文件中使用的符号,但我想知道的是哪个函数中使用了哪个函数?
答案 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