Alguém usa o Address-Sanitizer (conhecido como asan ou -fsanitize = address) para o iOS?

Sanitizer de endereçohttps://code.google.com/p/address-sanitizer/wiki/AddressSanitizer

Eu compilei meu próprio llvm (compilação direta) porque o llvm da apple não suporta esta função.

Eu testei o clang para o programa de linha de comando do mac, ele funciona (mas sem mostrar a linha do código fonte).

para iOS, ainda há alguns problemas:

compilar versão do simulador: erro de relatório para o cabeçalho pré-compilado:

No arquivo incluído em /Users/fluke/Documents/projects/tmp/testAsanNoARC/testAsanNoARC/testAsanNoARC-Prefix.pch:12: No arquivo incluído em /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/ SDKs / iPhoneSimulator6.1.sdk / System / Library / Frameworks / UIKit.framework / Cabeçalhos / UIKit.h: 9: /Aplicativos/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator6.1 .sdk / System / Library / Frameworks / UIKit.framework / Cabeçalhos / UIAccelerometer.h: 53: 24: erro: 'UIAccelerometer' não disponível: não disponível no OS X - (vazio) acelerômetro: (UIAccelerometer *) acelerômetro didAccelerate :( UIAcceleration *) aceleração NS_DEPRECATED_IOS (2_0, 5_0); ^ /Aplicativos/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator6.1.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIAccelerometer.h:33:12: note: declaração foi explicitamente marcada como indisponivel aqui @interface UIAccelerometer: NSObject {^ /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator6.1.sdk/System/Library/Frameworks/UIKit.framework /Headers/UIAccelerometer.h:53:71: erro: 'UIAcceleration' não disponível: não disponível no OS X - acelerômetro (vazio): (UIAccelerometer *) acelerômetro didAccelerate: (UIAcceleration *) aceleração NS_DEPRECATED_IOS (2_0, 5_0); ...

compile para a versão do dispositivo, ele relata a falta de libarc (mas na verdade eu não habilito o ARC)

ld: arquivo não encontrado: /Users/fluke/Documents/tools/asan/Debug+Asserts/lib/arc/libarclite_iphoneos.um clang: erro: o comando linker falhou com o código de saída 1 (use -v para ver invocação)

então eu tento usá-lo para uma biblioteca separada - apenas um novo alvo de lib e uso meu próprio clang enquanto o alvo principal ainda usa o llvm da apple. o programa compila (pode precisar de link para o asan dylib no llvm construído), mas não funciona porque eu preciso ser carregado antes da entrada do nosso programa.

Quem tem experiência em fazer isso?

questionAnswers(2)

yourAnswerToTheQuestion