我正在构建两个Linux内核模块。
第二个模块(以下称为debugging
模块)基本上使用jprobe
来拦截第一个模块(称为main
模块)内部的函数调用,并打印一些状态以进行调试。他们工作得很好。但是我对debugging
模块上的main
模块的依赖性提出了一个问题。
显然,debugging
模块取决于main
模块,因为加载debugging
模块时没有加载main
模块,我收到错误
"Unknown symbol in module, or unknown parameter"
然而,看起来modules.dep无法弄明白。通过查看
nm -u <debugging_module.ko>
我没有找到任何与main
模块相关的未解析符号。但是jprobe
需要来自main
模块的函数名称来拦截,这是为.kp.symbol_name
结构中的jprobe
分配的字符串。
我们如何在这种情况下指定依赖?