2016-10-14 43 views
0

我建立與cmake並忍者構建發電機LLVM如下:如何使用cmake在LLVM中啓用--debug-only?

cmake path/to/llvm/ -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_ASSERTIONS=1 -DLLVM_ENABLE_CXX1Y=1 -DLLVM_ENABLE_RTTI=1 -DLLVM_TARGETS_TO_BUILD="X86" -G Ninja 

現在我一想使用選擇的-debug-only=mytype選項,打印有關我自己的傳球一些調試信息:用我的通行證以下代碼:

define DEBUG_TYPE "mytype" 
DEBUG(errs() << "My debug message\n"); 

運行opt作爲以下不產生任何輸出消息:

opt <a.bc> /dev/null -mypass -debug-only=mytype 

度Acc或者LLVM documentation

由於性能方面的原因,-debug-only在LLVM的優化構建(--enable-optimized)中不可用。

我懷疑這是我的問題的根源,但我找不到如何使用cmake來打開/關閉此選項來構建llvm。

回答

1

它通過啓用斷言進行控制。 cmake -DLLVM_ENABLE_ASSERTIONS=ON就足以打開它。如果你沒有看到你的調試輸出,那麼你的代碼不會被執行。

0

我在這裏給我的問題補充一個答案。正如@Joky所說的,編譯llvm時必須指定cmake -DLLVM_ENABLE_ASSERTIONS=ON。另外,因爲我的通行證是以外的llvm源代碼樹,所以在構建通行證時還必須啓用斷言。