这两个命令在linux上是:
objcopy --only-keep-debug foo foo.dbg
objcopy --add-gnu-debuglink=foo.dbg foo相当于mac上的下面
dsymutil <binary> -o <binary>.dSYM在这个意义上,
那就脱衣服
是linux上的命令:
objcopy --strip-debug foo或
strip -g <binary>相当于mac上的下面
strip -S <binary>发布于 2015-10-23 16:59:26
objcopy的--only-keep-debug部分在功能上与dsymutil执行相同的操作。
没有任何工具来记录dSYM中的二进制位置。相反,dSYM &二进制文件共享一个通用UUID,希望查找符号文件的客户端使用DebugSymbols框架,该框架使用各种技巧(例如,Spotlight导入程序、搜索路径、"dSYM查找外部脚本“等)查找单独的调试文件。因此,不需要类似于--add-gnu-debuglink。
strip -S的mac版本确实以与binutils版本相同的方式剥离调试信息。不同之处在于,OS上的strip -S实际上不会大大减少二进制文件的大小。在OS上,调试信息总是保存在可执行文件之外--驻留在.o文件或dSYM中。可执行文件只有一个小的“调试映射”,它告诉lldb或dsymutil如何从.o文件链接侏儒。strip -S只需删除调试映射。
https://stackoverflow.com/questions/33214529
复制相似问题