- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图将我对“DWARF”与“DWARF with dSYM file”调试信息格式的理解映射到我在不同 iOS 构建配置的崩溃信息中看到的内容。
我试图解决一个问题,即默认情况下不会对使用调试配置的构建崩溃进行符号化。这些是问题解决之前我的build设置 -
剥离链接产品 - 调试 - 否,发布 - 是
复制期间删除调试符号 - 调试 - 否,发布 - 是
调试信息格式 - 调试 - DWARF、发布 - DWARF 和 dSYM 文件
使它起作用的是将调试信息格式设置为“DWARF with dSYM File”以进行调试配置。
我的问题是 - 如果我指定不应将产品的符号剥离到 dSYM 文件中(在剥离链接产品设置中),为什么我需要将格式设置为“带有 dSYM 文件的 DWARF”?
我(可能不正确)的理解是,如果我将其设置为 DWARF,那么所有调试信息都将位于应用程序二进制文件内,并且我不需要单独的 dSym 文件进行符号化?请帮助我更好地理解这一点。
最佳答案
在Apple的平台上,DWARF永远不会被烘焙到可执行文件中(除了展开信息)。启用 DWARF 调试信息仅意味着 .o 文件包含 DWARF 格式的调试信息。不过,链接器不会将其带入可执行文件中。
如果您请求 dSYM 文件,则单独的构建步骤将使用 dsymutil 将调试信息从 .o 文件收集到 dSYM 包或文件中。
假设您正在构建机器上进行调试,调试器可以在需要时使用可执行文件中的映射来查找 .o 文件中的调试信息。这就是为什么您通常不需要 dSYM 文件来进行调试构建。符号化没有可执行文件,只有一个 UUID。它可以使用 UUID 找到 dSYM,但没有找到 .o 文件的信息。
参见 this answer由参与实现这个东西的苹果开发人员完成。另外,this older wiki article他写道。
关于ios - 调试信息 "DWARF"和崩溃日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54133246/
谁能帮我写一个程序,它可以读取 DWARF 文件并给我文件名、行号和函数名的详细信息。 最佳答案 DWARF-2 和 DWARF-3 的规范在这里: http://dwarfstd.org/dwarf
XCode 支持此build设置的这 2 个值: build设置 > 构建选项 > 调试信息格式。 谁能解释一下区别? 最佳答案 不同之处在于,对于带有 dSYM 文件的 DWARF,您的存档 app
我想知道使用属性 DW_AT_location 进行调试。它是 dwarf 指定用于调试的属性之一,但无法真正理解它到底代表什么。以及当我们编译代码时应该什么时候发出这个属性。 最佳答案 来自 DWA
好的,我已经使用 Linux Dwarf ldw 库将 backtrace_symbols 输出转换为源代码和行号,但遇到了障碍。 backtrace_symbols 给出内存中的偏移量,在用作 Dw
考虑以下矮人代码示例 - : Abbrev Number: 1 (DW_TAG_compile_unit) DW_AT_producer : (indirect string, o
warning: invalid DWARF generated by the compiler: DIE 0x000629bb has multiple AT_decl_line attribute
我玩Dwarf Fortress游戏。对我来说主要的挑战是有效地设计堡垒的布局。这意味着,每个行业流应尽可能密集,以尽量减少行进距离。 食品行业就是一个例子 .每个灰色椭圆代表一座建筑物。每个白色矩形
对于 C/C++ 源文件中的任何元素,我希望能够在其编译的可执行文件中确定相应的内存位置。通过调试进行编译并使用生成的 DWARF 信息对实现这一目标大有帮助,但离我的目标还差得很远。 GCC 生成的
所有, 有没有工具可以检查文件的 DWARF 版本?像这样的东西: $ dwarf_tool binary_name 4 最佳答案 在Linux环境下?如果你安装了 GCC,你应该有 readelf可
我有一个通过内存跟踪程序执行的应用程序。我尝试使用 readelf --debug-dump=decodedline获取内存地址/行号信息,但我看到的内存地址通常与该转储给出的内存地址不匹配。我写了一
GCC 在其 DWARF 调试信息(使用 -g 编译时)中包含用于生成目标文件的源文件的路径。 然而,GDB的search rules意味着我必须使用鲜为人知的 set subsitute-path如
我试图将我对“DWARF”与“DWARF with dSYM file”调试信息格式的理解映射到我在不同 iOS 构建配置的崩溃信息中看到的内容。 我试图解决一个问题,即默认情况下不会对使用调试配置的
如何通过 DWARF 的引用获取我的变量地址? 例如我们有下一个结构: struct sub_struct { int a, b; sub_struct(int a, int b) :
我有一个 ARM 二进制文件,我需要准确找到其函数序言结束和尾声开始的地址。换句话说,我需要函数体的边界。例如,如果我有一个函数,其程序集类似于: 0x00000320 : push {r
有没有一种简单的方法可以让 Linux 进程访问它自己的 DWARF 调试信息?我有一个进程想要将一个特定编译单元的 DWARF 信息转储到日志文件中。 这是为了简化一些物流。我有包含原始 C 结构的
尝试构建时,我在 Xcode 4 中遇到以下错误: libIOSCoreSDK.a(Logging.o) object file doesn't contain DWARF debug informa
例如: : Abbrev Number: 1 (DW_TAG_compile_unit) DW_AT_producer : (indirect string, offset: 0
有没有办法将调试信息从 binutils 的 DWARF 格式(例如,由 Cygwin 上的 GCC 发出)转换为 Microsoft PDB(由 Visual Studio 使用)? 最佳答案 cv
在 perf record --call-graph dwarf 生成的回溯中由 perf script 打印,我一直在为大约 5% 的调用堆栈获取错误的地址,即展开失败。一个例子是 my_bin 7
我正在尝试从 DWARF 信息中获取有关调用约定的信息。更具体地说,我想了解哪些寄存器/堆栈位置用于将参数传递给函数。我的问题是,在某些情况下,我从 DWARF 转储中获得了某种错误的信息。我使用的示
我是一名优秀的程序员,十分优秀!