【发布时间】:2015-08-11 00:55:04
【问题描述】:
我想要一种简单快速的方法来收集 LLVM 位码中每个 Instruction 在应用程序的给定运行中执行的次数。据我所知,我可以采取多种方法:
使用PIN。这将需要使用 DWARF 调试信息和指令调试信息来尝试将二进制中的指令映射到位码中的指令;不能 100% 确定这将是多么准确。
使用 llvm-prof。这里有两个问题。首先,我在Stack Overflow 上看到
opt的一个选项称为--insert-edge-profiling。但是,该选项似乎在 3.6 中不可用?其次,这种分析似乎只记录功能级别的执行计数,而不是单个指令级别的执行计数。对吗?写一个类似于AddressSanitizer的新工具。这可能有效,但似乎有点矫枉过正。
有没有更简单的方法来实现我所缺少的目标?
【问题讨论】:
标签: profiling llvm dynamic-analysis