私が制御できないサードパーティ向けのプラグインを構築しています。このプラグインを使用して Xcode 7 で Address Sanitizer を使用したいと考えています。プラグインを正常にコンパイルしてインストールできます。問題は、それが機能していることを証明できないことです。サニタイザーが問題を検出することを確認するために、次のコードを含めています。
int* test = (int*)malloc(sizeof(int));
free(test);
*test = 5;
NSLog(@"%d", *test);
サードパーティのアプリケーションがプラグインをロードすると、予想されるクラッシュは発生せず、5 という数字がログに記録されます。
環境変数を使用してDYLD_PRINT_LIBRARIES_POST_LAUNCH
、アドレスサニタイザーランタイムライブラリがロードされたことを証明しましたが、確かに次のとおりでした:
dyld: loaded: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/7.0.0/lib/darwin/libclang_rt.asan_osx_dynamic.dylib
メインの実行可能ファイルがプラグインを使用していないときに、この診断ツールをプラグインで動作させる方法はありますか?