我正在使用gcc -g
为C文件编译玩具操作系统,nasm -g
用于asm文件,并ld
将所有内容整合在一起。
我使用qemu -s
运行它,然后使用gdb
启动-x
:
file build/kernel.elf
target remote localhost:1234
检查文件中的符号显示功能及其名称:
$ nm -g build/kernel.elf
00101000 D framebuffer
0010001d T kstart
00100010 T loader
00103000 B NULL
如果我设置了一个命名断点(例如break kstart
),gdb会随之而来,但实际上它会断开:
0x000fd29f in ?? ()
Breakpoint 1 at 0x10001d: file src/kernel.c, line 19.
(gdb) bt
#0 0x000fd29f in ?? ()
#1 0x90669066 in ?? ()
#2 0x00000000 in ?? ()
功能名称不再存在了吗?我做错了什么?