【问题标题】:Main Thread Checker dylib injection主线程检查器dylib注入
【发布时间】:2017-10-07 18:37:14
【问题描述】:

根据 Apple 开发人员文档Diagnosing Memory, Thread, and Crash Issues Early,在“检测后台线程上的不当 UI 更新”部分中,可以在运行时将 libMainThreadChecker.dylib 注入应用程序,以便使用主线程检查器工具。在不使用 Xcode 中的诊断设置的情况下,如何在运行之前(如果可能)或在运行时注入这个 dylib?我尝试使用 GitHub 上的 osxinj 和 yololib 项目进行注入,但没有成功。

【问题讨论】:

    标签: xcode9 dylib


    【解决方案1】:

    有很多方法可以做到这一点:最简单的可能是将DYLD_INSERT_LIBRARIES 环境变量设置为/Applications/Xcode.app/Contents/Developer/usr/lib/libMainThreadChecker.dylib。 (您可以从方案编辑器的“参数”选项卡中执行此操作。)

    另一种方法是在代码中动态加载它。只需在应用的启动路径中尽早添加 dlopen("/Applications/Xcode.app/Contents/Developer/usr/lib/libMainThreadChecker.dylib", RTLD_LAZY) 之类的内容即可。

    您也可以直接链接到该库,但这会将库硬编码到您的应用程序中,对于主要用于调试的东西,我不建议这样做。

    【讨论】:

      【解决方案2】:

      单击停止按钮旁边的项目名称 -> 编辑方案。在诊断下有一个启用/禁用它的选项

      【讨论】:

      • 寻找没有 Xcode 诊断设置的解决方案。
      猜你喜欢
      • 1970-01-01
      • 2017-12-10
      • 1970-01-01
      • 2011-04-02
      • 1970-01-01
      • 2020-01-22
      • 2017-11-29
      • 2013-01-26
      相关资源
      最近更新 更多