MacOS/X 是否具有类似于 Windows' PDB 文件的分离调试信息机制?

Does MacOS/X have a separated-debug-info mechanism similar to Windows' PDB files?

在 Windows 下开发和部署应用程序时,开发人员可以选择在本地存储由编译器生成的 .pdb 文件作为每次构建的一部分,并让他的程序调用 MiniDumpWriteDump 以响应崩溃以生成一个 .dmp 文件,该文件稍后可以发回给开发人员。然后开发人员可以将接收到的 .dmp 与适当的 .pdb 文件和可执行文件相匹配,并使用它来对崩溃进行 post-mortem 调试(即查看堆栈跟踪等)。

设置和管理起来很麻烦,但优点是它允许开发人员从他发布的程序中删除所有调试信息,但仍然能够调试现场发生的崩溃。这允许程序的安装大小小得多,并且可能使程序不易受到逆向工程的影响。

我的问题是,MacOS/X 是否有类似 .pdb 的机制?我看到的 MacOS/X 的唯一选项是 "strip" 你的可执行文件(生成一个小的可执行文件,但如果它崩溃的话调试信息很少),或者不这样做(生成一个可执行文件它在崩溃时提供非常有用的崩溃报告,但比其他情况下需要的要大得多)。

我想 dsymutil 就是您要找的。它创建一个 .dSYM 文件夹,该文件夹以其运行的二进制文件命名,其中包含调试信息。

老实说我从来没有真正使用过它。而且我不确定您需要从远程计算机获得哪种堆栈跟踪信息。