MacOS/X是否有类似于Windows的独立调试信息机制;PDB文件?

MacOS/X是否有类似于Windows的独立调试信息机制;PDB文件?,macos,pdb,postmortem-debugging,Macos,Pdb,Postmortem Debugging,在Windows下开发和部署应用程序时,开发人员可以选择在本地存储编译器生成的.pdb文件(作为每个构建的一部分),并让其程序调用来响应崩溃,以生成一个.dmp文件,该文件稍后可以发送回开发人员。然后,开发人员可以将收到的.dmp与相应的.pdb文件和可执行文件进行匹配,并使用该文件对崩溃进行事后调试(即查看堆栈跟踪等) 设置和管理它是一件痛苦的事情,但它的优点是允许开发人员从发布的程序中删除所有调试信息,但仍然能够调试现场发生的崩溃。这使得程序的安装尺寸小得多,并且可能使程序不易受到反向工程的

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

设置和管理它是一件痛苦的事情,但它的优点是允许开发人员从发布的程序中删除所有调试信息,但仍然能够调试现场发生的崩溃。这使得程序的安装尺寸小得多,并且可能使程序不易受到反向工程的影响


我的问题是,MacOS/X有没有像.pdb这样的机制?对于MacOS/X,我看到的唯一选项是“剥离”可执行文件(生成一个小的可执行文件,但如果崩溃,调试信息很少),或者不剥离(生成一个可执行文件,在崩溃时提供非常有用的崩溃报告,但比其他情况下需要的要大得多).

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


老实说,我从来没有真正使用过它。我不确定您需要从远程计算机进行什么样的堆栈跟踪。

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


老实说,我从来没有真正使用过它。而且我不确定您需要从远程计算机获得什么样的堆栈跟踪。

堆栈跟踪显示了崩溃线程的堆栈上调用了什么函数(理想情况下也是导致崩溃的确切代码行)一个相关的线程在这里:堆栈跟踪显示了什么函数调用了崩溃线程堆栈上的什么位置(理想情况下也是导致崩溃的确切代码行)一个相关的线程在这里: