我正在尝试运行此LLVM检测项目,但我只能在Linux下加载检测优化.
我在OSX上编译并安装了LLVM 3.2和Clang 3.2,并且在Linux中具有相同的版本.
当我尝试在Linux中运行时:
command opt -load ./obj/llvminstrument/libllvminstrument.so -help |grep instrum
-insert-edge-profiling - Insert instrumentation for edge profiling
-insert-gcov-profiling - Insert instrumentation for GCOV profiling
-insert-optimal-edge-profiling - Insert optimal instrumentation for edge profiling
-insert-path-profiling - Insert instrumentation for Ball-Larus path profiling
-instrument_block - Injects block instrumentation instructions
-instrument_function - Injects function instrumentation instructions
-instrument_prepare - Prepares instrumentation instructions
Run Code Online (Sandbox Code Playgroud)
OSX中的相同命令:
command opt -load ./obj/llvminstrument/libllvminstrument.dylib -help |grep instrum ?········
opt: CommandLine Error: Argument 'track-memory' defined more than once! ?········
opt: CommandLine Error: Argument 'debug-buffer-size' defined more than once! ?········
opt: CommandLine Error: Argument 'print-all-options' defined more than once! ?········
opt: CommandLine Error: Argument 'print-options' defined more than once! ?········
opt: CommandLine Error: Argument 'print-after-all' defined more than once! ?········
opt: CommandLine Error: Argument 'print-before-all' defined more than once! ?········
opt: CommandLine Error: Argument 'track-memory' defined more than once! ?········
opt: CommandLine Error: Argument 'debug-buffer-size' defined more than once! ?········
opt: CommandLine Error: Argument 'print-all-options' defined more than once! ?········
opt: CommandLine Error: Argument 'print-options' defined more than once! ?········
opt: CommandLine Error: Argument 'print-after-all' defined more than once! ?········
opt: CommandLine Error: Argument 'print-before-all' defined more than once! ?········
-insert-edge-profiling - Insert instrumentation for edge profiling ?········
-insert-gcov-profiling - Insert instrumentation for GCOV profiling ?········
-insert-optimal-edge-profiling - Insert optimal instrumentation for edge profiling ?········
-insert-path-profiling - Insert instrumentation for Ball-Larus path profiling
Run Code Online (Sandbox Code Playgroud)
我不确切知道如何解决这个问题,但问题是您将几个核心 LLVM 库静态链接到仪器 dylib 中,其方式与 opt 驱动程序“dlopen”不兼容。因此,当您打开它时,您会得到各种命令行参数的重复全局变量。这可能与 LLVM 关系不大,更多地与 OS X 上使用的特定构建过程有关,对于符号和/或共享与静态链接的可见性有不同的默认值。
| 归档时间: |
|
| 查看次数: |
888 次 |
| 最近记录: |