问题标签 [dwarf]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
objective-c - Xcode 警告:无法打开 OSO 文件
我将我的 Xcode 项目中的 ffmpeg dylibs 升级到了新版本,现在当我运行我的应用程序时,我在 Xcode 控制台窗口中收到所有这些警告。任何想法为什么我得到这些?
提前致谢!
这是一个缩写版本,但你会明白的。
elf - 来自 elf 可执行文件的结构中元素的地址
是否可以从不为调试编译的 ELF 可执行文件中获取结构中元素的地址?
例如,给定以下代码:
nm 和 readelf 都给出了变量“places”的起始地址,readelf 也给出了 sizeof:
但是我需要的是结构中每个元素的地址。所以从上面我想要的是:
我目前唯一的方法是使用 dwarf2 调试信息进行编译,使用 readelf (-wliao) 转储 .debug_info 部分,然后从 DW_TAG_variable 中解析类型树,并加上 base_type 大小。示例自述:
我需要找到一种在不访问源代码的情况下执行此操作的方法,并且关闭调试信息..
任何帮助或指针表示赞赏。
谢谢,克里斯
dwarf - DW_AT_location的用途和意义
我想知道使用属性 DW_AT_location 进行调试。它是 dwarf 为调试指定的属性之一,但无法真正理解它究竟代表什么。以及当我们编译代码时应该何时发出这个属性。
macos - Apples GCC 在哪里/如何将 DWARF 存储在可执行文件中
Apples GCC 在哪里/如何将 DWARF 存储在可执行文件中?
gcc -gdwarf-2
我通过(Apples GCC)编译了一个二进制文件。但是,既没有objdump -g
也objdump -h
没有向我显示任何调试信息。
libbfd 也找不到任何调试信息。(我在 binutils-mailinglist 上问过这个问题。)
但是,我可以通过dsymutil
(到 dSYM)提取调试信息。libbfd 也能够读取这些调试信息。
c - 如何在 .bundle 文件中模拟 objdump --dwarf=decodedline?
我已经成功地用于在 Linux 上objdump --dwarf=decodedline
的文件中查找每个偏移量的源位置。.so
不幸的是,在 Mac-OS X 上。似乎.bundle
文件(用作共享库)不能以这种方式查询。
我很乐观地认为我可以做一些事情,因为gdb
能够正确调试和单步调试这些包中的代码——有人知道它在做什么吗?
更多信息:
该dwarfdump
实用程序声称 .bundle 文件不包含 DWARF 数据,但它确实包含 STABS 数据;但是objdump --stabs
也找不到任何刺伤数据。
(如果它使问题更容易回答,我实际上并不需要所有的偏移量;能够查询任何给定偏移量的源位置就足够了)。
我一直在测试的捆绑文件是使用以下方法生成的:
原始 c_location.o 文件确实包含工作所需的信息objdump --dwarf=decodedline
。
iphone - 如何获取正在运行的进程的 mach-o uuid?
在 Mac 上获取 UUID 我可以使用
我也可以在“二进制图像”部分通过简单的崩溃获得 UUID
在ios设备上获得UUID而不会崩溃的方法是什么?
php - 需要一个 C 结构解析器
假设我有一个文件system.h
,其中包含以下结构
现在我需要一个宏,类似于DUMP_STRUCT(bar)
,它递归地打印 bar 的所有成员(类型为 Foo)。
是否有任何解析器/脚本(最好在 php/python 中)可以解析 C 文件或从可执行文件中获取来自 dwarf 的信息并创建类似于的函数DUMP_STRUCT
?
ios - atos 和 dwarfdump 不会象征我的地址
我通过 AirBrake.io 收到了一份没有符号化的崩溃报告。由于崩溃报告的格式与 Apple 崩溃日志的格式不完全相同,因此我不能像往常一样将其放在 XCode 上,因此我从 XCode 存档中获取了完全相同的构建,试图在命令行上对其进行符号化。结果如下:
我绝对确定我使用的是与崩溃报告相同的版本。所以我也尝试了 dwarfdump:
也没有结果。除了使用错误的 dSYM 文件之外,还有什么我可能做错的吗?我知道它是正确的,因为这是 AirBrake 的崩溃报告中提到的版本,它在我的 XCode 存档中。
欢迎任何想法/提示!
arrays - 从调试信息中检索变量类型
考虑 :
如果我们对数据部分进行 objdump,我们将得到变量 x,其起始地址和大小为 (4*3) 字节。有没有简单的方法来检索 x 是一个数组以及什么类型的信息?
我知道我们可以使用 dwarfdump -i a.out 来做到这一点,然后解析结果以达到同样的效果,但是有什么更简单的方法可以做到。我只需要检查它是否是一个数组以及什么类型?
问候,
潘卡伊
python - ELF 解析:使用 pyelftools 直接访问 DIE
我需要一种使用它们的偏移量直接访问 DIE 的方法。到目前为止,我发现有一种计算单元 (CU) 对象的方法,您可以在其中从偏移量访问 DIE。
IE :
但是,如果您尝试访问当前 CU 之外的 DIE,则会超出范围,因为该 DIE 未在该 CU 下编制索引。
我能想到的最好的方法是遍历 CU,并使用偏移量作为索引创建一个完整的 DIE 列表。
似乎应该有一个DWARFInfo
类的方法,只要你有它的偏移量,你就可以访问任何 DIE。
我需要这样做的原因是因为我正在循环所有 CU 以生成我的全局变量列表,并且我需要在不同的 CU 中引用 DIE 来检索类型信息。