首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用工具评测IPhone应用程序时缺少符号名称

使用工具评测IPhone应用程序时缺少符号名称
EN

Stack Overflow用户
提问于 2010-05-06 04:15:11
回答 11查看 43.3K关注 0票数 64

我正在通过命令行编译IPhone应用程序(因此不涉及XCode选项),但在使用工具进行评测时无法获得要显示的符号名称。我尝试了几个标志,比如-gdawrf-2和-g,但都没有成功。我也尝试过使用dsymutils来生成.dSYM文件,但我不知道该如何使用它,所以也失败了。

任何帮助都将不胜感激!

EN

回答 11

Stack Overflow用户

回答已采纳

发布于 2010-05-21 02:55:16

Instruments如何获取调试信息:

仪器从.dSYM文件获取调试信息,该文件通常由XCode在将调试信息格式设置为DWARF时由dSYM文件结合生成调试符号选项框中的复选标记自动生成。设置这些选项将在XCode构建过程中添加额外的步骤,并在编译应用程序后生成dSYM文件。每个dSYM都是使用UUID构建的,该UUID对应于从中派生它的二进制文件中的Mach-O部分中的UUID。聚光灯导入器对Mac上聚光灯可访问位置中的每个dSym文件的UUID进行索引。因此,SPOTLIGHT完成了所有的黑魔法,并负责在您正在运行的.app与其对应的.dSYM文件之间建立链接。

如何在没有XCode的情况下生成调试信息和dSYM文件:

确保您使用了-gdwarf-2和-g标志。(其他标志组合可能会起作用)

-g以操作系统的本机格式(stabs、COFF、XCOFF或DWARF 2)生成调试信息。GDB可以使用这些调试信息。在大多数使用stabs格式的系统上,-g允许使用只有GDB才能使用的额外调试信息;这些额外信息使GDB中的调试工作更好,但可能会使其他调试器崩溃或拒绝读取程序。如果您想确定是否生成额外的信息,请使用-gstabs+、-gstabs、-gxcoff+、-gxcoff或-gvms (如下所示)。GCC允许您在-O中使用-g。优化代码采用的捷径有时可能会产生令人惊讶的结果:您声明的某些变量可能根本不存在;控制流可能会短暂地移动到您预期之外的位置;某些语句可能无法执行,因为它们计算常量结果或它们的值已经在手边;一些语句可能会在不同的位置执行,因为它们被移出了循环。

然而,事实证明,调试优化的输出是可能的。这使得对可能有bug的程序使用优化器是合理的。-gdwarf-2生成DWARF版本2格式的调试信息(如果支持)。这是IRIX 6上的DBX使用的格式。通过此选项,GCC在有用时使用DWARF版本3的功能;版本3与版本2向上兼容,但仍可能对较旧的调试器造成问题。

使用dsymutil生成dSYM文件。如果该工具在命令行中无法识别,请使用spotlight找到它。重要提示:如果您使用的是网络驱动器,请在生成dSYM之前将.app文件放在mac上。

dsymutil MyApp.app/MyApp -o MyApp.app.dSYM

将.dSYM文件放在mac的本地驱动器上,然后像往常一样运行Instruments。

Resettig spotlight的索引:

如果符号没有显示,可能是因为spotligh被窃听了。您可以尝试重置spotlight的索引,方法是将包含dSYM文件的文件夹(甚至驱动器)添加到spotlight首选项中的“阻止spotlight搜索这些位置”,然后立即将其删除。

票数 39
EN

Stack Overflow用户

发布于 2015-03-20 16:03:49

我更改了项目设置,以便在构建时不包含dSYM文件:

将其更改为包含dSYM文件有助于分析器对符号进行解符,并修复了我的问题:

票数 107
EN

Stack Overflow用户

发布于 2011-10-21 01:47:28

我仍然对此有意见。

我的问题是,我能够看到生成的dSYM文件,但工具不能提取它。

要解决此问题,请执行以下操作:

  1. 找到您的dSYM文件(应该在~/Library/Developer/DerivedData/APP_NAME-XXXXXXX/Build/Products/BUILD_TYPE-DEVICE-TYPE/
  2. With Instruments停止,单击文件-> Re-Symbolicate Document
  3. Scroll,向下到您的应用程序名称为
  4. 的条目单击"Locate“并选择step 1
  5. 中的文件夹单击Start按钮开始评测
票数 66
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2776466

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档