如何在Xcode中从C++产品二进制文件中剥离函数名?

5m1hhzi4  于 2023-08-07  发布在  其他
关注(0)|答案(1)|浏览(96)

我一直在调试我的C++二进制文件中的一个崩溃,它是为Xcode中的发布构建配置而构建的。它在客户端计算机上运行,因此.dSYM文件不可用。只有二进制本身。
二进制文件是为发布版本配置而构建的。(我没有为它更改Xcode项目中的任何其他构建设置。
但是.ips文件中的崩溃报告给了我函数的名称:

Thread 0 Crashed::  Dispatch queue: com.apple.main-thread
0   MyApp      0x10252e678 MyClass::doWriteHere(char*) + 18
1   MyApp      0x10252e4e0 MyClass::performSomeFunction() + 42
2   MyApp      0x10252e2b4 MyClass::DoWork(WORK_TYPE) + 998
3   MyApp      0x10252d950 main + 1190
4   dyld       0x1937e4f28 start + 2246

字符串
我如何从我的生产中剥离这些,或者发布二进制文件?
编辑:将“Strip Debug Symbols During Copy”更改为“NO”或“YES”对生产二进制文件中函数符号名称的存在没有影响。
它是否盲目地将函数名包含到二进制中,认为C++==Objective-C

qybjjes1

qybjjes11#

在Xcode项目中有一个Deployment Postprocessing设置,需要为“发布”版本启用该设置以删除私有符号。由于某些原因,它在最新版本的Xcode中默认不启用。(资料来源)

相关问题