调试Quick Look插件

时间:2015-06-25 11:56:27

标签: xcode macos debugging quicklook

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

我想编写一个快速查看插件,以便在查找程序中看起来很好,并且找到了关于它应该如何工作的教程,但显然我必须做错事,因为我在/ var / log /中看到我的Quick Look插件运行时遇到段错误的system.log。我想知道它在哪里崩溃,但我不能为我的生活找出如何做到这一点。

OSX在哪里存储核心转储(如果它甚至这样做)?我是否需要设置一些系统选项或启用它?

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

我迷路了。

2 个答案:

答案 0 :(得分:11)

编辑 SIP阻止您调试受保护的进程。因此,目前(至少自从SIP被引入,通过Mojave)无法在不关闭SIP(至少部分)的情况下调试QuickLook插件。

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

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

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

  1. 点击Alt + Cmd + R打开运行配置窗口;
  2. 展开" Build"选项卡在左侧,然后转到后期操作;
  3. 单击窗口底部的加号,然后选择" New Run Script Action",并使用以下代码。
  4. 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. check" Debug executable"如果它还没有;
    5. 转到"参数"选项卡,添加" -p"参数,然后根据您需要预览的文件添加参数。
    6. 现在,当您使用“运行”操作时,您将能够通过qlmanage调试插件。

答案 1 :(得分:0)

我个人没试过,但这页:

Debugging Quicklook Plugin in Xcode 4.6

描述了如何在Xcode 4 - 6中调试插件。这可能比在事后尝试对核心文件进行grub更有用。