gpt4 book ai didi

c++ - Xcode 是否会去除依赖项 (OSX) 的调试符号并将它们放入 .dSYM 中?

转载 作者:太空宇宙 更新时间:2023-11-04 13:30:27 25 4
gpt4 key购买 nike

我的 OSX 应用程序有几个依赖库,它们是用 -g clang 标志编译的,以保留源代码级调试符号。Xcode 项目设置将 Strip Debug Symbols During Copy 设置为 YES 并将 Debug Information Format 设置为 DWARF with dSYM

但是,每当我阅读符号化的崩溃报告时,应用程序级的回溯帧都被正确地符号化,但库级帧只是内存地址。这让我觉得 Xcode 没有将依赖项的符号数据放入 dSYM 包中。如何解决这个问题?

最佳答案

我已经解决了这个问题。应该使用 dsymutil 从使用源代码级符号编译的任意二进制文件中提取 dSYM 包(-g 标志用于 clang 在 OSX 上)。

我编写了这个脚本来自动从我的依赖项中提取 dSYM 并将它们放入存档并将其添加到项目配置中 Archive 阶段的 Post-build action :

log="/tmp/${FULL_PRODUCT_NAME}-release.log"echo "********* Adding dependencies dSYMs into the archive..." > $logfunction copyLibDsym(){    local lib=$1    local libfile=$(basename $lib)    local libname="${libfile%.*}"    echo "extracting dSYMs from ${libname} to ${ARCHIVE_DSYMS_PATH}/${libname}.dSYM" >> $log    dsymutil "$lib" -o "${ARCHIVE_DSYMS_PATH}/${libname}.dSYM"}ndnrtclib="${NDNRTC_LIB_PATH}/libndnrtc.dylib"ndncpplib="${NDNCPP_LIB_PATH}/libndn-cpp.dylib"discoverylib="${NDNCHAT_LIB_PATH}/libentity-discovery.dylib"chatlib="${NDNCHAT_LIB_PATH}/libchrono-chat2013.dylib"copyLibDsym $ndnrtclibcopyLibDsym $ndncpplibcopyLibDsym $discoverylibcopyLibDsym $chatlib

Archive 的 dSYMs 文件夹现在有几个 .dSYM 包,可用于正确的崩溃报告符号化。

关于c++ - Xcode 是否会去除依赖项 (OSX) 的调试符号并将它们放入 .dSYM 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31690824/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com