debugging 调试快速查看插件

z9ju0rcb  于 2023-03-19  发布在  其他
关注(0)|答案(2)|浏览(160)

我正在编写一个应用程序,它有自己的(跨平台)基于XML的自定义文件类型。
我想写一个快速查看插件,这样在查找器中看起来就很好,我已经找到了关于如何工作的教程,但显然我一定是做错了什么,因为我在/var/log/system. log中看到,当我的快速查看插件运行时,我得到了一个segfault。
MacOS在哪里存储核心转储(如果它真的这样做的话)?我需要设置一些系统选项或其他东西来启用它吗?
如何让Xcode查看这些核心转储?

rryofs0p

rryofs0p1#

EDITSIP会阻止您调试受保护的进程。因此,目前(至少从莫哈韦引入SIP以来)不关闭SIP(至少部分关闭)就无法调试QuickLook插件。

正如您可能已经发现的那样,由于QuickLook插件是一个插件而不是一个独立的可执行文件,因此您需要调试托管插件的进程,为此,您可以将自己与qlmanage可执行文件挂钩。
第一步是使.qlgenerator插件可用于Quick Look服务器。为此,您需要将其复制到~/Library/QuickLook并运行qlmanage -r。第一步可以作为构建后操作实现,第二步必须在调试选项中指定。
对于生成后操作,应按照下列步骤操作:
1.按Alt+Cmd+R打开运行配置窗口;
1.展开左侧的“构建”选项卡,并转到后期操作;
1.单击窗口底部的加号,选择“新建运行脚本操作”,并使用以下代码。
1.绝对确保“提供构建设置自”设置为您的QuickLook扩展目标。

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调试您的插件。

qij5mzcb

qij5mzcb2#

我个人还没有尝试过这个,但是这个页面:
Debugging Quicklook Plugin in Xcode 4.6
有一个关于如何在Xcode 4 - 6中调试插件的描述。这可能比事后试图通过核心文件进行挖掘要有用得多。

相关问题