Kann jemand Address-Sanitizer (bekannt als asan oder -fsanitize = address) für iOS verwenden?

Address-Sanitizerhttps://code.google.com/p/address-sanitizer/wiki/AddressSanitizer

Ich habe mein eigenes llvm kompiliert (ziemlich einfaches Kompilieren), weil das llvm von Apple diese Funktion nicht unterstützt.

Ich habe das Kommandozeilenprogramm von clang für Mac getestet, es funktioniert (aber ohne der Zeile den Quellcode zu zeigen).

Für iOS gibt es immer noch einige Probleme:

Kompilierungssimulator-Version: Fehler bei vorkompiliertem Header melden:

In Datei aus /Users/fluke/Documents/projects/tmp/testAsanNoARC/testAsanNoARC/testAsanNoARC-Prefix.pch:12: In Datei aus /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/ SDKs / iPhoneSimulator6.1.sdk / System / Library / Frameworks / UIKit.framework / Headers / UIKit.h: 9: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator6.1 .sdk / System / Library / Frameworks / UIKit.framework / Headers / UIAccelerometer.h: 53: 24: Fehler: 'UIAccelerometer' ist nicht verfügbar: unter OS X nicht verfügbar - (ungültiger) Beschleunigungsmesser: (UIAccelerometer *) Beschleunigungsmesser didAccelerate :( UIAcceleration *) Beschleunigung 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: note: Die Deklaration wurde hier explizit als nicht verfügbar markiert. @interface UIAccelerometer: NSObject {^ /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator6.1.sdk/System/Library/Frameworks/UIKit.frameworks /Headers/UIAccelerometer.h:53:71: Fehler: 'UIAcceleration' ist nicht verfügbar: unter OS X nicht verfügbar - (ungültiger) Beschleunigungsmesser: (UIAccelerometer *) Beschleunigungsmesser hat beschleunigt: (UIAcceleration *) Beschleunigung NS_DEPRECATED_IOS (2_0, 5_0); ...

Kompilieren für die Geräteversion, es meldet einen Mangel an Libarc (aber tatsächlich aktiviere ich ARC nicht)

ld: Datei nicht gefunden: /Users/fluke/Documents/tools/asan/Debug+Asserts/lib/arc/libarclite_iphoneos.a clang: Fehler: Linker-Befehl mit Exit-Code 1 fehlgeschlagen (Aufruf mit -v)

Also versuche ich es für eine separate Bibliothek zu benutzen - nur ein neues Bibliotheksziel und benutze meinen eigenen Clang, während das Hauptziel immer noch Apfels llvm benutzt. Das Programm wird kompiliert (muss möglicherweise mit der Asan-Dylib in der erstellten llvm verknüpft werden), funktioniert jedoch nicht, da ich Asan vor unserem Programmeintrag laden muss.

Wer hat Erfahrung damit?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage