Как использовать AddressSanitizer на Android NDK GCC? - PullRequest
0 голосов
/ 23 октября 2018

Я хочу использовать AddressSanitizer для проверки проблем с памятью в Android Native C ++ Code, скомпилированном с GCC 4.9.

, поэтому я установил

SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}  -g1 -fsanitize=address -fno-omit-frame-pointer")
SET (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g1 -fsanitize=address -fno-omit-frame-pointer")
SET (CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -fsanitize=address -static-libasan")

в моем файле CMakeLists.txt.

но я получил ошибку:

ld.exe: ошибка: не могу найти -lasan ", я нахожу в каталоге NDK, я не нахожу libasan.so

Отличается ли NDK GCC от NDK Clang? В NDK, только поддержка адреса клана AddressSanitizer?

1 Ответ

0 голосов
/ 23 октября 2018

Вы не можете использовать ASAN с GCC в NDK.Эти библиотеки никогда не были отправлены.ASAN поддерживается с Clang, а GCC вообще не поддерживается в текущих NDK.

Отличается ли NDK GCC от NDK Clang?

Inточно так же, как не-NDK GCC отличается от не-NDK Clang, да.Они разные компиляторы.

...