cost 361 ms
从调试信息重新编译 C++ 二进制文件 - Recompile C++ binary from debug info

这更多是出于好奇而不是生产需求,但我一直在问自己是否可以提取二进制文件的 C++ 源,以便可以重新编译它以生成二进制文件的工作克隆。 如果尝试过: 使用“-g -Og”编译二进制文件以包含矮人信息, 使用带有“-S”和“--source-comment”的objdump将源交错到转储中找出所有注释的 ...

debug info中C结构的ELF文件变量地址 - ELF file variable addresses of C structure in debug info

我有.elf文件。 我正在尝试学习符号地址。 我可以通过多种方式找到主要的变量地址。 我使用了 pyelftools、nm.exe、objdump.exe、readelf.exe。 但是所有这些方式我都无法到达结构地址和枚举值。 当我用 dwarf 调试 elf 文件时,我可以看到结构和枚举。 我可 ...

DWARF 调试信息:在 debug_info 内的元素中生成的附加字节 - DWARF debug information: Additional byte generated in element inside debug_info

我正在修复 DWARF 调试信息(第二个 DWARF 版本)解析器中的错误。 在这个过程中,我做了以下奇怪的观察: 通过读取 dll 文件(由 GNAT 使用 ada 文件创建)来创建字节流。 在此字节流内的 debug_info 中的“DW_TAG_structure_type”的 positio ...

在 NASM 中使用 %line 指令与 dwarf 调试格式不会导致预期的行号 - Usage of %line directive in NASM with dwarf debug format does not result in expected line numbers

我正在使用 NASM 编译以下代码(nasm -g -F dwarf -f elf64 test.asm && gcc -g3 test.o)。 我希望这会将第 1、2、3、8、9 和 10 行添加到矮数据中,但是当我浏览文件(使用 DWARF 资源管理器、readelf 或自己 ...

不同的 .dwo 文件可以合并为一个吗? - Can different .dwo files be combined into a single one?

背景: 我需要我们项目中代码的调试信息。 可以使用以下两种方法: 使用-g编译,然后使用 GNU 二进制实用程序strip和objcopy将调试信息剥离到单独的文件中。 使用-gsplit-dwarf编译 题 第二种方法为应用程序中的每个翻译单元创建一个.dwo 。 虽然这会改善链接器 ...

如何使用 dwarf 将目标文件中的指令映射到源代码行 - How to use dwarf to map instructions in object file to source code line

我是 dwarf 的addr2line ,并使用了一些工具,如addr2line 、 objectdump 。 但是,我面临的问题是我想获取映射到其源代码行的目标文件/静态库中的所有指令。 棘手的部分是目标文件中没有地址,因为每个函数都从0x00开始。 所以addr2line不起作用(或者我没有正确 ...

有没有办法修改关于外部变量的 DWARF 格式 output in.elf 文件 - Is there a way to modify DWARF format output in .elf file regarding external variabels

我们有一个第三方软件,它从 generate.elf 中挑选出关于我们使用 DWARF 调试信息来查找它的全局变量的信息。 以前我们一直在使用 IAR 编译器,它生成.elf 文件,包括调试 DWARF 信息。 使用 IAR 生成的.elf 文件,在 memory 中查找位置地址和变量名称没有问题。 ...

使用 DWARF 版本 4 查找框架基础和变量位置 - Find frame base and variable locations using DWARF version 4

我正在关注Eli Bendersky 关于解析 DWARF 调试信息的博客。 他在他的博客中展示了一个使用 DWARF 版本 2 解析二进制文件的示例。 可以从location list中检索function(进一步用于检索局部变量)的框架基础: 但是,我发现在 DWARF 版本 4 中没有这样的. ...

GDB:手动注入调试符号 - GDB: manually inject debug symbols

我目前正在调试一个 BIOS 原始二进制文件(没有可用的源代码),我想教我手动发现的 gdb 调试符号(例如 function 偏移量、本地变量、堆栈参数)。 gdb 可以加载各种调试符号文件格式,但我没有找到任何手动教他们的方法。 有多种工具可用于转储调试信息,但无法从用户定义的输入中找到实际创 ...

如何检查我的调试器的程序计数器是否在 function 内? - How to check if my debugger's program counter is inside a function?

我正在编写一个调试器,想看看它的程序计数器是否在 function 内。 我想我需要检查它是否在DW_AT_low_pc和DW_AT_high_pc之间。 这是我要调试的代码: dwarfdump给出以下内容: 在我的调试器循环中,我读取程序计数器如下: 但它获得的值永远不会介于DW_AT_lo ...

WebAssembly 调试符号(wasm:// vs file://) - WebAssembly debug symbols (wasm:// vs file://)

我需要一个关于使用 emscripten 生成的 WebAssembly 二进制文件如何存储它们的调试符号的建议,以了解为什么我的特殊情况不起作用而一个微不足道的情况起作用。 所以我试图测试这个AV1 WebAssembly 端口,但它在 malloc 中出现错误,所以我想调试它。 我添加了-g4 ...

如何在 Linux kernel 模块中为地址找到合适的 DWARF 符号? - How can I find a proper DWARF symbol for address in a Linux kernel module?

我有一个带有 DWARF 调试信息的 kernel 模块。 它的所有 ELF 部分都具有零起始地址。 它的 DWARF 信息包含多个重叠的代码和数据符号。 它还有许多 DW_AT_low_pc 地址为零的编译单元。 有没有办法在二进制文件中的某个位置找到正确的 DWARF 符号? ...

DW_FORM_strp 值的位置 - Location of DW_FORM_strp values

我试图了解DW_FORM_strp属性值实际存储在 ELF 文件中的位置(可以在此处找到: https://filebin.net/77bb8359o0ibqu67 )。 我找到.debug_info 、 .debug_abbrev和.debug_str部分。 然后我解析了 .debug_info ...

2020-12-06 08:11:17   2   185    elf / dwarf  
解析DWARF的高效方式 - Efficient way to parse DWARF

我尝试构建一个调试器,它允许我在函数或代码行处设置断点。 所需的调试信息应该从 elf 文件的 DWARF 部分中提取。 我能够提取这些数据。 我要调试的项目有 50-100 个文件,所以我需要大约 10 分钟的时间来使用 readelf 或 pyelftools 解析 elf 以获得我需要的所有矮 ...


 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM