2016-10-14 4 views
0

Я строй LLVM с CMake и генератором сборки Ninja следующим образом:Как включить --debug-only в LLVM build с cmake?

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 <a.bc> /dev/null -mypass -debug-only=mytype 

Acc Ординг LLVM documentation:

По соображениям производительности -debug только не доступно в оптимизированной сборке (--enable-оптимизированный) из LLVM.

Я подозреваю, что это корень моей проблемы, но я не могу найти, как включить/выключить эту опцию при использовании cmake для создания llvm.

ответ

1

Управление им осуществляется с помощью утверждений. cmake -DLLVM_ENABLE_ASSERTIONS=ON достаточно, чтобы включить его. Если вы не видите свой отладочный вывод, ваш код не будет выполнен.

0

Я добавлю дополнительный ответ на свой вопрос. Как сказал @Joky, при компиляции llvm необходимо указать cmake -DLLVM_ENABLE_ASSERTIONS=ON. Кроме того, поскольку мои проходы построены вне исходное дерево llvm, утверждения также должны быть включены при построении проходов.

Смежные вопросы