недопустимое значение «край» в «fsantize-coverage=edge» при использовании LLVM LibFuzzer

http://llvm.org/docs/LibFuzzer.html Я делаю некоторые работы с libfuzzer сейчас, но когда я делаю с официальной игрушкой, например. когда я запускаю эту команду:

clang++ -fsanitize=address -fsanitize-coverage=edge test-fuzzer.cc Fuzzer*.o

происходит ошибка, которая

clang: error: invalid value 'edge' in 'fsanitize-coverage=edge'

похоже, clang поддерживает этот аргумент, но мне интересно, как я могу увидеть, какое значение поддерживается... я установил llvm 3.6 с помощью apt-get с unbuntu14.04...


person nisiyu    schedule 16.02.2016    source источник


Ответы (1)


Синтаксис флага fsanitize-coverage= был изменен, как описано в этом сообщении фиксации от Май 2015. Этот фрагмент особенно актуален для вас:

Original semantics of -fsanitize-coverage flag is preserved:
  * -fsanitize-coverage=0 disables the coverage
  * -fsanitize-coverage=1 is a synonym for -fsanitize-coverage=func
  * -fsanitize-coverage=2 is a synonym for -fsanitize-coverage=bb
  * -fsanitize-coverage=3 is a synonym for -fsanitize-coverage=edge
  * -fsanitize-coverage=4 is a synonym for -fsanitize-coverage=edge,indirect-calls

Итак, вы можете попробовать -fsanitize-coverage=3.

person Ismail Badawi    schedule 17.02.2016