我正在编译第三方内核模块。他们的构建系统进入/usr/src/linux-headers-[version]
(自定义内核 chroot)并make
从那里运行。
我想找出哪些文件(源文件和头文件)已用于编译,哪些没有。标准为每个编译源scripts/Makefile.build
创建*.d
文件,我想使用它......但这些文件是已删除经过短暂处理后。 (这是rule_cc_o_c
中的定义Makefile.build
。)
有什么方法可以在对标准构建系统进行最小修改的情况下收集这些文件?
答案1
尝试使用libtrashcan。编译并安装后,将该库预加载到您的进程中。
例如,以下将创建一个测试文件,然后尝试删除它,但由于 libtrashcanunlink
系统调用将被移动替换,因此该文件最终将位于~/Trash
:
export LD_PRELOAD=/usr/local/lib/libtrash.so.3.3
touch testfile
rm testfile