Кто-нибудь заставляет работать Address-Sanitizer (известный как asan или -fsanitize = address) для iOS?

Адрес-дезинфицирующееhttps://code.google.com/p/address-sanitizer/wiki/AddressSanitizer

Я скомпилировал свой собственный llvm (довольно простая компиляция), потому что apple llvm не поддерживает эту функцию.

Я проверил clang для программы командной строки Mac, она работает (но без указания строки исходного кода).

для iOS все еще есть некоторые проблемы:

версия симулятора компиляции: ошибка отчета для предварительно скомпилированного заголовка:

В файл включен из /Users/fluke/Documents/projects/tmp/testAsanNoARC/testAsanNoARC/testAsanNoARC-Prefix.pch:12: В файл включен из /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/e SDKs / iPhoneSimulator6.1.sdk / Система / Библиотека / Каркасы / UIKit.framework / Заголовки / UIKit.h: 9: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator6.1 .sdk / Система / Библиотека / Каркасы / UIKit.framework / Headers / UIAccelerometer.h: 53: 24: ошибка: «UIAccelerometer» недоступен: недоступен в OS X - (void) акселерометр: (UIAccelerometer *) акселерометр didAccelerate :( UIAcceleration *) ускорение NS_DEPRECATED_IOS (2_0, 5_0); ^ /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator6.1.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIAccelerometer.h:33:12: примечание: объявление было явно помечено как недоступное здесь @interface UIAccelerometer: NSObject {^ /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator6.1.sdk/System/Library/FrameworksmeUit /Headers/UIAccelerometer.h:53:71: ошибка: «UIAcceleration» недоступна: недоступно в OS X - (void) акселерометр: (UIAccelerometer *) акселерометр didAccelerate: (UIAcceleration *) ускорение NS_DEPRECATED_IOS (2_0, 5_0, 5_0, 5 ...

компилировать для версии устройства, он сообщает об отсутствии libarc (но на самом деле я не включаю ARC)

ld: файл не найден: /Users/fluke/Documents/tools/asan/Debug+Asserts/lib/arc/libarclite_iphoneos.a clang: ошибка: сбой команды компоновщика с кодом выхода 1 (используйте -v для просмотра вызова)

поэтому я пытаюсь использовать его для отдельной библиотеки - просто создайте новую цель для библиотеки и используйте мой собственный лязг, в то время как основная цель по-прежнему использует яблочный llvm. программа компилируется (может потребоваться ссылка на dylib asan во встроенном llvm), но не работает, потому что мне нужно загрузить asan перед входом в нашу программу.

у кого есть опыт в этом?

Ответы на вопрос(2)

Ваш ответ на вопрос