Почему kgdb
всегда начинаются с kernel/kgdb.c:1749
строк "kgdb: ожидание соединения с удаленным gdb", просто шаг на пути к ядру Linux.
Я хочу начать с самого начала.
Моя среда:
- ПК ubuntu10.10
- gdb-kernel 2.6.34.1
- filesys, созданный busybox
- VirtualMach является QEMU
Следуя советам веб-поиска, я создал свой linux. Я могу использовать это плавно, но когда я пытаюсь сделать это с помощью удаленного gdb, ядро всегда начинается с:
kernel / kgdb.c: 1749 "kgdb: ожидание соединения с удаленного gdb"
, что слишком далеко от функции start_kernel
, с которой я хочу встретиться.
Я использую следующее:
qemu -kernel /usr/src/work/bzImage -append "root=/dev/sda kgdboc=ttyS0,115200 kgdbwait"
-boot c -hda /usr/src/work/busybox.img -k en-us -serial tcp::4321,server
gdb /usr/src/work/vmlinux (gdb) target remote localhost:4321
Затем я добавляю -S
, чтобы он мог начинаться с самого начала. Но когда я gdb
это все равно что-то не так.
Когда я ввожу команду next
, она не переходит на следующую строку и не переходит в другое место. Например, я установил точку останова на init.c startkernel()
после next
. Это в другом файле.