Xcode 为插件启用地址消毒器

Xcode 为插件启用地址消毒器,xcode,debugging,address-sanitizer,Xcode,Debugging,Address Sanitizer,我正在为我无法控制的第三方构建插件。我想在这个插件中使用带有Xcode 7的地址消毒剂。我可以成功编译我的插件并安装它。问题是我无法证明它是有效的。我将包含以下代码,以确保消毒剂检测到问题: int* test = (int*)malloc(sizeof(int)); free(test); *test = 5; NSLog(@"%d", *test); 当第三方应用程序加载我的插件时,预期的崩溃永远不会发生,数字5将被记录 我已经使用了DYLD\u PRINT\u LIBRARIES\u P

我正在为我无法控制的第三方构建插件。我想在这个插件中使用带有Xcode 7的地址消毒剂。我可以成功编译我的插件并安装它。问题是我无法证明它是有效的。我将包含以下代码,以确保消毒剂检测到问题:

int* test = (int*)malloc(sizeof(int));
free(test);
*test = 5;
NSLog(@"%d", *test);
当第三方应用程序加载我的插件时,预期的崩溃永远不会发生,数字5将被记录

我已经使用了
DYLD\u PRINT\u LIBRARIES\u POST\u 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

当主可执行文件不使用插件时,有什么方法可以使此诊断工具在插件上工作?

我找到的唯一解决方法是为通常加载插件的软件创建一个模拟器。通过这种方式,我可以激活二进制文件中的地址消毒器,并且诊断工具开始报告插件中的问题。我发现的唯一解决方法是为通常加载插件的软件创建一个模拟器。通过这种方式,我可以在两个二进制文件中激活地址消毒器,并且诊断工具开始报告插件中的问题。