【问题标题】:Debugging a Quick Look plugin调试 Quick Look 插件
【发布时间】:2015-09-12 00:31:28
【问题描述】:

我对 OSX 开发还很陌生。我目前正在编写一个具有自己(跨平台)自定义基于 XML 的文件类型的应用程序。

我想编写一个快速查看插件,以便在 finder 中看起来不错,并找到了关于它应该如何工作的教程,但显然我做错了什么,因为我在 /var/log/ 中看到了system.log 运行我的 Quick Look 插件时出现段错误。我想看看它在哪里崩溃了,但我一辈子都想不出该怎么做。

OSX 在哪里存储核心转储(如果它甚至这样做的话)?我需要设置一些系统选项或其他东西来启用它吗?

如何让 Xcode 查看这些核心转储?

我迷路了。

【问题讨论】:

标签: xcode macos debugging quicklook


【解决方案1】:

我没有亲自尝试过,但是这个页面:

Debugging Quicklook Plugin in Xcode 4.6

描述了如何在 Xcode 4 - 6 中调试你的插件。这可能比事后试图通过核心文件 grub 更有用。

【讨论】:

    【解决方案2】:

    EDIT SIP 阻止您调试受保护的进程。因此,目前(至少自从通过 Mojave 引入 SIP 以来)在不关闭 SIP 的情况下(至少部分关闭)是不可能调试 QuickLook 插件的。


    您可能已经发现,由于您的 QuickLook 插件是一个插件而不是独立的可执行文件,因此您需要调试托管该插件的进程。为此,您可以将自己挂接到 qlmanage 可执行文件。

    第一步是让您的 .qlgenerator 插件可用于 Quick Look 服务器。为此,您需要将其复制到 ~/Library/QuickLook 并运行 qlmanage -r。第一个可以作为构建后操作来实现,第二个必须在调试选项中指定。

    对于构建后操作,您应该遵循以下步骤:

    1. 按 Alt+Cmd+R 打开运行配置窗口;
    2. 展开左侧的“构建”选项卡并转到后期操作;
    3. 单击窗口底部的加号并选择“New Run Script Action”,然后使用以下代码。
    4. 绝对确保将“提供构建设置来自”设置为您的 QuickLook 扩展目标。
    rm -Rf "~/Library/QuickLook/$FULL_PRODUCT_NAME"
    cp -R "$BUILT_PRODUCTS_DIR/$FULL_PRODUCT_NAME" ~/Library/QuickLook
    qlmanage -r
    

    然后,您需要配置 Xcode 以启动 qlmanage

    1. 在同一窗口中,转到“运行”选项卡,然后选择“信息”;
    2. 在可执行文件下拉菜单中,选择“其他...”;
    3. 按 Shift+Cmd+G 输入路径,输入“/usr/bin/qlmanage”,然后选择该文件;
    4. 如果尚未选中“调试可执行文件”;
    5. 移至“参数”选项卡,添加“-p”参数,然后添加您认为适合您需要预览的文件的参数。

    现在,当您使用 Run 操作时,您将能够通过 qlmanage 调试您的插件。

    【讨论】:

    • 我在运行此配置时收到消息:“由于系统完整性保护,无法附加到进程”。有什么我想念的吗?
    • @DamiaanDufaux,让我看看是否可以找到另一种更好的方法来启用 SIP。在此之前,您可以将qlmanage 复制到文件系统上的任何其他位置,并从该副本中复制strip the signature,这将使您能够对其进行调试。
    • OK qlmanage 现在正在打开,但我仍然收到以下错误:Month 13 is out of boundsCFMessagePort: bootstrap_register(): failed 1100 (0x44c) 'Permission denied', port = 0x9c03, name = 'com.apple.coredrag'CFMessagePort: bootstrap_register(): failed 1100 (0x44c) 'Permission denied', port = 0xc53b, name = 'com.apple.tsm.portname'
    • @DamiaanDufaux,你可能已经得出了这个结论,但我现在拥有相当好的权威,目前调试 qlgenerator 的唯一方法是禁用 SIP 或自己加载 qlgenerator并处理数据馈送和显示。
    • 我很惊讶您的编辑提到了缩略图扩展。我找不到更多关于这方面的信息。你有什么信息吗?
    猜你喜欢
    • 2012-11-16
    • 1970-01-01
    • 2012-11-22
    • 2019-03-26
    • 1970-01-01
    • 2012-06-27
    • 1970-01-01
    • 2020-06-13
    • 2015-12-24
    相关资源
    最近更新 更多