gpt4 book ai didi

gcc - GDB:在 NASM 汇编文件中找不到符号文件

转载 作者:行者123 更新时间:2023-12-05 03:24:35 31 4
gpt4 key购买 nike

请原谅我,我是新来的,但我正在尝试使用 gdb 调试 x86 程序集。

ex10.asm

global main
extern printf

section .data
msg db "Testing %i...", 0x0a, 0x00

main:
push ebp
mov ebp, esp
push 123
push msg
call printf
mov eax, 0
mov esp, ebp
pop ebp
ret

编译并链接如下:

nasm -f elf32 -F dwarf -g ex10.asm -o ex10.o

gcc -m32 -gdwarf ex10.o -o ex10

ex10.o 似乎有调试符号

$ objdump --syms ./ex10.o | grep debug
00000000 l d .debug_info 00000000 .debug_info
00000000 l d .debug_abbrev 00000000 .debug_abbrev
00000000 l d .debug_line 00000000 .debug_line

ex10 似乎没有调试符号

$ objdump --syms ./ex10 | grep debug
----returns nothing----

gdb ./ex10 下面返回

$ gdb ./ex10
GNU gdb (Ubuntu 9.2-0ubuntu1~20.04.1) 9.2
This GDB was configured as "x86_64-linux-gnu".
Reading symbols from ./ex10...
(No debugging symbols found in ./ex10)

在此之后,我不太确定要看什么。我应该提供任何建议或信息吗?

另外,nasm 版本

$ apt list --installed | grep nasm
nasm/focal,now 2.14.02-1 amd64 [installed]

最佳答案

转载于 NASM 2.15.05 版

没有 section .text(由 ssbssa 建议):

readelf -w ex10.o

Section '.debug_aranges' has no debugging data.
Section '.debug_pubnames' has no debugging data.
Section '.debug_info' has no debugging data.
Section '.debug_abbrev' has no debugging data.
Section '.debug_line' has no debugging data.
Section '.debug_frame' has no debugging data.
Section '.debug_loc' has no debugging data.

所以很自然地您在最终链接输出中什么也得不到。

main 之前添加 section .text 可以解决问题。

注意:您期待 objdump --syms ./ex10 | 的输出grep debug,但这是错误的期望:

  1. 您的文件中没有名为*debug*符号
  2. 你应该~never使用 objdump 查看 ELF 文件。请改用 readelf

如果您坚持使用objdump,请执行以下操作:

objdump -g ex10 | grep debug

Contents of the .debug_aranges section (loaded from ex10):
Offset into .debug_info: 0x0
Contents of the .debug_info section (loaded from ex10):
Contents of the .debug_abbrev section (loaded from ex10):
Raw dump of debug contents of section .debug_line (loaded from ex10):

关于gcc - GDB:在 NASM 汇编文件中找不到符号文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72268576/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com