我正在编写一个应用程序,它有自己的(跨平台)基于XML的自定义文件类型。我想写一个快速查看插件,这样在查找器中看起来就很好,我已经找到了关于如何工作的教程,但显然我一定是做错了什么,因为我在/var/log/system. log中看到,当我的快速查看插件运行时,我得到了一个segfault。MacOS在哪里存储核心转储(如果它真的这样做的话)?我需要设置一些系统选项或其他东西来启用它吗?如何让Xcode查看这些核心转储?
rryofs0p1#
EDITSIP会阻止您调试受保护的进程。因此,目前(至少从莫哈韦引入SIP以来)不关闭SIP(至少部分关闭)就无法调试QuickLook插件。
正如您可能已经发现的那样,由于QuickLook插件是一个插件而不是一个独立的可执行文件,因此您需要调试托管插件的进程,为此,您可以将自己与qlmanage可执行文件挂钩。第一步是使.qlgenerator插件可用于Quick Look服务器。为此,您需要将其复制到~/Library/QuickLook并运行qlmanage -r。第一步可以作为构建后操作实现,第二步必须在调试选项中指定。对于生成后操作,应按照下列步骤操作:1.按Alt+Cmd+R打开运行配置窗口;1.展开左侧的“构建”选项卡,并转到后期操作;1.单击窗口底部的加号,选择“新建运行脚本操作”,并使用以下代码。1.绝对确保“提供构建设置自”设置为您的QuickLook扩展目标。
qlmanage
qlmanage -r
rm -Rf "~/Library/QuickLook/$FULL_PRODUCT_NAME" cp -R "$BUILT_PRODUCTS_DIR/$FULL_PRODUCT_NAME" ~/Library/QuickLook qlmanage -r
然后,您需要配置Xcode以启动qlmanage:1.在同一窗口中,转到“运行”选项卡,然后选择“信息”;1.在可执行文件下拉菜单中,选择“其他...";1.按Shift+Cmd+G输入路径,放入“/usr/bin/qlmanage”,然后选择该文件;1.检查“调试可执行文件”(如果尚未检查);1.移动到“Arguments”选项卡,添加一个“-p”参数,然后添加您认为适合您需要预览的文件的参数。现在,当您使用Run操作时,您将能够通过qlmanage调试您的插件。
qij5mzcb2#
我个人还没有尝试过这个,但是这个页面:Debugging Quicklook Plugin in Xcode 4.6有一个关于如何在Xcode 4 - 6中调试插件的描述。这可能比事后试图通过核心文件进行挖掘要有用得多。
2条答案
按热度按时间rryofs0p1#
EDITSIP会阻止您调试受保护的进程。因此,目前(至少从莫哈韦引入SIP以来)不关闭SIP(至少部分关闭)就无法调试QuickLook插件。
正如您可能已经发现的那样,由于QuickLook插件是一个插件而不是一个独立的可执行文件,因此您需要调试托管插件的进程,为此,您可以将自己与
qlmanage
可执行文件挂钩。第一步是使.qlgenerator插件可用于Quick Look服务器。为此,您需要将其复制到~/Library/QuickLook并运行
qlmanage -r
。第一步可以作为构建后操作实现,第二步必须在调试选项中指定。对于生成后操作,应按照下列步骤操作:
1.按Alt+Cmd+R打开运行配置窗口;
1.展开左侧的“构建”选项卡,并转到后期操作;
1.单击窗口底部的加号,选择“新建运行脚本操作”,并使用以下代码。
1.绝对确保“提供构建设置自”设置为您的QuickLook扩展目标。
然后,您需要配置Xcode以启动
qlmanage
:1.在同一窗口中,转到“运行”选项卡,然后选择“信息”;
1.在可执行文件下拉菜单中,选择“其他...";
1.按Shift+Cmd+G输入路径,放入“/usr/bin/qlmanage”,然后选择该文件;
1.检查“调试可执行文件”(如果尚未检查);
1.移动到“Arguments”选项卡,添加一个“-p”参数,然后添加您认为适合您需要预览的文件的参数。
现在,当您使用Run操作时,您将能够通过
qlmanage
调试您的插件。qij5mzcb2#
我个人还没有尝试过这个,但是这个页面:
Debugging Quicklook Plugin in Xcode 4.6
有一个关于如何在Xcode 4 - 6中调试插件的描述。这可能比事后试图通过核心文件进行挖掘要有用得多。