dwarf相关内容

从 a.out 文件中提取全局变量

编辑(更新问题) 我有一个简单的 C 程序: //知道代码是什么并不重要,你可以跳过代码 ma​​in.c #include 无符号整数 AppCtr;无符号字符 AppFlag;诠释 SOME_LARGE_VARIABLE;静态无效应用程序测试(无效);无效主要(无效){AppCtr = 0;应用标志 = 0;应用测试();}静态无效Foo(无效){SOME_LARGE ..
发布时间:2022-01-17 08:53:58 其他开发

atos 和 dwarfdump 不会象征我的地址

我通过 AirBrake.io 收到了一份没有符号化的崩溃报告.由于崩溃报告的格式与 Apple 崩溃日志的格式不完全相同,我不能像往常一样将它放在 XCode 上,所以我从我的 XCode 存档中获取了完全相同的构建,试图在命令行上对其进行符号化.结果如下: $ atos -o kidsapp.app/kidsapp 0x0002fc4c0x0002fc4c(在kidsapp中) 我绝对确定 ..
发布时间:2021-12-20 20:56:18 移动开发

将调试符号从DWARF转换为PDB

是否可以将调试信息从binutils的DWARF格式(例如,由Cygwin上的GCC发出)转换为Microsoft PDB(由Visual Studio使用)? 解决方案 cv2pdb可以做到这一点.我得到的结果好坏参半,有时效果非常好,而其他时候局部和全局变量却丢失了 https://github.com/rainers/cv2pdb ..
发布时间:2021-04-29 20:27:31 其他开发

在NASM中调试符号(更多)

这个问题在StackOverflow上已经问了好几次了,但是我尝试了所有答案,但仍然无法使NASM包含DWARF调试符号. 我正在Ubuntu 18.04 64位下使用NASM 2.13.02.我不确定我是否仍然缺少什么? 如果有关系,我实际上想同时使用LLDB和GDB. 谢谢. 这是我的代码: section .bss section .text global _ ..
发布时间:2020-09-13 00:54:02 其他开发

如何最好地确定二进制文件是否包含STAB或DWARF调试信息?

当涉及到ELF时,两种随附的调试格式在其他格式中极为流行,即 STAB和DWARF .我想要一种简单的方法来确定给定的二进制文件是否包含一种形式或另一种形式的调试信息,最好不必检查节名称(.stab等). 有什么好的方法可以做到这一点? 解决方案 当涉及到ELF时,两种伴随的调试格式非常流行 在过去10年中,ELF平台上的任何当前编译器均未默认使用STABS格式.绝对不是“ ..
发布时间:2020-06-13 18:32:03 其他开发

DW_AT_location的用途和含义

我想知道如何使用属性DW_AT_location进行调试.它是dwarf指定的用于调试的属性之一,但无法真正理解其确切含义.以及在编译代码时应何时发出此属性. 解决方案 请检查 DWARF 3的第7章规范,数据表示. 例如,如果DW_AT_location的值为0x91 0x68,则从第7章的表中我们可以知道0x91表示DWARF调试信息格式为DW_OP_fbreg,而0x68为SL ..
发布时间:2020-06-13 18:31:59 其他开发

如何在xcode 9.3中找到DWARF_DSYM_FOLDER_PATH和DWARF_DSYM_FILE_NAME

我正在使用Crashlytics来报告iOS应用中发生的崩溃.在这里,我想知道如何在xcode中的dwarf文件夹和文件下面找到这些文件的路径: DWARF_DSYM_FOLDER_PATH DWARF_DSYM_FILE_NAME 解决方案 您需要转到管理器并选择存档文件,然后选择在finder中显示 此后,您需要选择显示包内容 最后是您的DYSM文件夹 ..
发布时间:2020-06-13 18:31:57 移动开发

如何使用objdump反汇编一个函数?

我的系统上安装了二进制文件,并希望查看给定功能的反汇编.最好使用objdump,但其他解决方案也是可以接受的. 来自这个问题我了解到,如果我只知道边界地址.通过此答案,我已经学会了如何将拆分后的调试符号变回单个文件. 但是即使对单个文件进行操作,甚至反汇编所有代码(即没有开始或停止地址,但对objdump使用简单的-d参数),我仍然在任何地方都看不到该符号.只要所讨论的函数是静态的,就 ..
发布时间:2020-06-13 18:31:52 其他开发

Info.plist文件处理修改可执行文件

我一直在开发iPhone应用程序时遇到了一个问题,即dSYM文件生成对我来说是错误的. GenerateDSYMFile/Users/kaom/Projects/build/Release-iphoneos/NodeAppGen.app.dSYM/Users/kaom/Projects/build/Release-iphoneos/NodeAppGen.app/NodeAppGen cd/用 ..
发布时间:2020-05-28 02:58:12 移动开发

侏儒你好世界大会的例子还是辅导?

我正在用nasm编写一种汇编级的人类可口编程语言. 我注意到,Dwarf调试是开发它的必要组件. 为了使其以后能够自托管,不仅必须编译为ELF,而且还支持Dwarf以使调试可行. 对于ELF,有一个很棒的nasm示例,说明如何制作ELF标头 http://www.muppetlabs.com/~breadbox/software/tiny/teensy .html http://blog.m ..
发布时间:2020-05-16 21:07:53 其他开发

分析MIPS二进制文件:是否有用于解析二进制数据的Python库?

我正在开发一个实用程序,该实用程序需要将十六进制地址解析为二进制内的符号函数名称和源代码行号.该实用程序将在x86的Linux上运行,尽管它分析的二进制文件将用于基于MIPS的嵌入式系统. MIPS二进制文件采用ELF格式,并使用DWARF作为符号调试信息. 我目前正计划分叉objdump,传入十六进制地址列表并解析输出以获取函数名称和源代码行号.我已经编译了一个支持MIPS二进制文件的ob ..
发布时间:2020-05-09 22:52:44 Python

我该怎么办DW_OP_call_frame_cfa

我正在尝试使用libdwarf计算正在运行的程序中局部变量的位置.我曾经能够通过执行DW_OP_fbreg来做到这一点,该DW_OP_fbreg最终将映射到该函数的框架基址的寄存器.在较新的矮人标准中,帧基为DW_OP_call_frame_cfa.我似乎找不到任何可以告诉我如何执行DW_OP_call_frame_cfa并返回框架基本位置的信息.关于CFA表的引用很多,谁会恢复哪些寄存器,但我不 ..
发布时间:2020-04-23 11:00:06 服务器开发

atos和dwarfdump不会象征我的地址

我通过AirBrake.io收到了一份没有象征意义的崩溃报告。由于崩溃报告与Apple崩溃日志的格式不完全相同,我不能像往常一样将它放在XCode上,因此我从我的XCode归档中获取完全相同的版本,试图在命令行上对其进行符号化。结果如下: $ atos -o kidsapp.app/kidsapp 0x0002fc4c 0x0002fc4c(在kidsapp中) 我绝对 ..
发布时间:2018-08-31 18:23:38 移动开发

Dwarf错误:编译单元头中的版本错误(是4,应该是2)

共享对象是在RedHat Linux上构建的,尽管所有代码都是用debug编译的,但调试器(gdb)拒绝加载这些符号,并发出如下错误: ... GNU gdb Fedora(6.8-37.el5) ... 这个GDB被配置为“x86_64-redhat- linux-gnu“... Dwarf错误:编译单元头文件中的版本错误(是4,应该是2)[in module libgrok ..
发布时间:2018-04-21 14:42:24 其他开发

获取a.out文件中符号的位置

这个问题确实很棒解释如何获得一个精灵文件的符号(变量,函数等)。 现在我已经知道他们在哪个位置(模块)的符号。例如,如果我编译一个由文件 main.c 和组成的程序, someFile.h 和 someFile.c 。我们还可以说 main.c 程序包含全局变量 int Counter。,那么我怎样才能知道变量 Counter 位于main.c中? 解决方案 答案位于此处。 。 ..
发布时间:2018-04-21 11:22:41 其他开发

苹果GCC在何处/如何将DWARF存储在可执行文件中

我通过 gcc -gdwarf-2 (苹果GCC)。但是, objdump -g 和 objdump -h 都没有显示任何调试信息。 另外libbfd没有找到任何调试信息。 (我在binutils邮件列表上询问了这里。) 然而,我可以通过 dsymutil (进入dSYM)提取调试信息。 libbfd也能读取那些调试信息。 解决方案 在Mac OS X上,有一个决定让链接器co ..
发布时间:2018-04-20 16:08:05 其他开发

如何解码.dSYM文件到显式DWARF格式?

DWARF是调试信息格式。 Xcode生成的.dSYM文件包含DWARF调试信息。 问题是:如何解码.dSYM文件以获取人机读取的DWARF信息,如下所示。 解决方案 在Mac OS X上,您可以使用 dwarfdump 实用程序将DWARF转储到.o文件或.dSYM包中。 %dwarfdump fig7.o -------------------- ----------- ..
发布时间:2017-04-18 04:52:01 移动开发

库读取ELF文件DWARF调试信息

对于以DWARF格式读取ELF文件调试信息的良好跨平台库的建议?我想在Python程序中阅读DWARF调试信息。 解决方案 块上有一个新的孩子 - pyelftools - 一个用于解析ELF和DWARF格式的纯Python库。尝试一下。 它的目标是功能完整,目前正在积极开发,所以任何问题都应该快速,热情地处理: - ) ..
发布时间:2017-04-17 19:47:06 Python