6.1.2.2 Kprobe 与 Uprobe 你有没有在深夜调试一个诡异的内核崩溃,而 里只留下一行模糊的 ? 有没有在生产环境里眼睁睁看着某个关键用户态函数(比如 的 )反复返回错误码,却连它到底被谁调用、参数是什么都抓不到? 有没有写过几十行 命令、翻烂 文档、甚至重编译内核加 ,最后发现——问题根本不在那行代码,而在它上游 3 层调用栈里一个被优化掉的寄存器传参? 这不是玄学。这是 Kprobe 和 Uprobe 在真实世界里每天面对的「信任边界」: Kprobe 能精准钉住内核任意指令地址,却对用户态函数签名束手无策;Uprobe 能优雅拦截用户态符号,却在 ASLR、PIE、动态链接器绕过、多线程竞态面前频频失守。