我正在寻找将跟踪/日志记录Hook插入到一些对性能非常敏感的驱动程序代码中的开销最少的方法。必须始终编译这些日志记录内容,但大多数时候什么都不做(但什么都不做非常快)。没有什么比拥有全局开/关词更简单的了,执行if(enabled){log()}。但是,如果可能的话,我什至想避免每次我命中一个钩子(Hook)时加载该词的成本。我突然想到,我可能会为此使用自修改代码——即在我调用跟踪函数的任何地方,当我想禁用Hook时,我用NOP覆盖跳转,并在需要时替换跳转启用它们。快速谷歌一下,没有找到任何这方面的现有技术——有人做过吗?这是否可行,是否有任何我没有预见到的主要障碍?(Linux,x8