通常如果你想修改 LLVM IR,你需要写一个 pass。但是,如果更高级别的工具可以为您提供帮助,有时自己编写通行证是一种矫枉过正的做法。
例如,有人可能希望在程序中记录每个load
和store
。为此,他需要注入执行日志记录的代码。现在如果有更高级别的工具,它可以提供回调给我们写我们想要的东西。因此,在这种情况下,例如,它可以为我们提供我们可以填充OnLoad
的OnStore
函数来告诉工具在每次加载和存储时要做什么。这种工具存在吗?
所以基本上我想要类似于动态二进制工具工具提供的东西,但它适用于 LLVM,用于编译时代码注入。