【问题标题】:How to load text (not binary) debugging informaton from a seperate file with GDB?如何使用 GDB 从单独的文件中加载文本(不是二进制)调试信息?
【发布时间】:2015-07-14 09:13:17
【问题描述】:

我有一个如下所示的 ELF 可执行文件:

$ hexcat hello
00000000:  7F 45 4C 46  01 01 01 00  00 00 00 00  00 00 00 00  .ELF............
00000010:  02 00 03 00  01 00 00 00  D7 80 04 08  34 00 00 00  ............4...
00000020:  00 00 00 00  00 00 00 00  34 00 20 00  01 00 00 00  ........4. .....
00000030:  00 00 00 00  01 00 00 00  00 00 00 00  00 80 04 08  ................
00000040:  00 80 04 08  E2 80 04 08  E2 80 04 08  05 00 00 00  ................
00000050:  00 10 00 00  B8 04 00 00  00 8B 5C 24  04 8B 4C 24  ..........\$..L$
00000060:  0C 8B 54 24  08 CD 80 C3  55 8B EC 6A  01 FF 75 0C  ..T$....U..j..u.
00000070:  FF 75 08 FF  75 FC BA 04  00 00 00 33  C0 E8 D2 FF  .u..u......3....
00000080:  FF FF 8D 65  FC 50 E8 01  00 00 00 0A  6A 01 6A 01  ...e.P......j.j.
00000090:  BA 04 00 00  00 33 C0 E8  B8 FF FF FF  8D 65 FC 50  .....3.......e.P
000000a0:  C9 C3 55 8B  EC E8 0D 00  00 00 48 65  6C 6C 6F 2C  ..U.......Hello,
000000b0:  20 57 6F 72  6C 64 21 6A  0D 33 D2 33  C0 E8 A6 FF   World!j.3.3....
000000c0:  FF FF 8D 65  00 6A 00 8B  45 FC C9 C3  8B 5C 24 04  ...e.j..E....\$.
000000d0:  B8 01 00 00  00 CD 80 E8  C6 FF FF FF  50 E8 EA FF  ............P...
000000e0:  FF FF                                               ..

我有一个符号表信息文件,如下所示:

$ cat hello.debug
rec 8048054 8048068 code write
rec 804808B 804808C string _tmp_2
rec 8048068 80480A2 code printl
rec 80480AA 80480B7 string _tmp_4
rec 80480A2 80480CC code main
rec 80480CC 80480D7 code exit
rec 80480D7 80480E2 code _start

我想在调试前者时使用后者;如何将这些信息输入 GDB?

(我尝试调试的实际程序要大得多;这只是一个示例。)

【问题讨论】:

    标签: gdb elf debug-symbols


    【解决方案1】:

    如何将这些信息输入 GDB?

    我不相信你可以。

    您最好的选择可能是将这些信息输入到一个工具中,该工具将使用hello.debug 描述的符号表创建一个新的 ELF 文件(这应该很容易通过使用适当的 .set 指令生成一个汇编文件来完成(documentation) 并编译/链接结果),并使用add-symbol-file那个新的 ELF 文件提供给 GDB。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-12
      • 2015-08-20
      • 1970-01-01
      • 1970-01-01
      • 2010-10-13
      相关资源
      最近更新 更多