1

У меня следующая проблема: Когда я подключаю GDB к qemu для отладки, он не прерывается на точках останова. Я могу установить точки останова, порвать с помощью Ctrl+C и т.д.

Любые подсказки, как это можно исправить?

Я имею:

$ qemu --version
QEMU PC emulator version 0.11.0 (qemu-kvm-0.11.0), Copyright (c) 2003-2008 Fabrice Bellard
$ gdb --version
GNU gdb (GDB) 7.0-ubuntu. This GDB was configured as "x86_64-linux-gnu".

Это пример сессии: (И да, это пинто)

gdb -x src/misc/gdb-macros kernel.o
GNU gdb (GDB) 7.0-ubuntu
Copyright (snip...)
License (snip...)
This GDB was configured as "x86_64-linux-gnu".
Reading symbols from ../../threads/build/kernel.o...done.
(gdb) debugpintos
0x0000fff0 in ?? ()
(gdb) break main
Breakpoint 1 at 0xc01000b6: file ../../threads/init.c, line 68.
(gdb) info break
Num     Type           Disp Enb Address    What
1       breakpoint     keep y   0xc01000b6 in main at ../../threads/init.c:68
(gdb) cont
Continuing.
Remote connection closed

Любые идеи приветствуются.

2 ответа2

1

У меня аналогичные проблемы с ядром Linux 2.6.25.20, я пытался разбить на start_kernel и панику, но он не работает, но если я запустил его и быстро нажал ctrl-c gdb, то я мог бы успешно сломаться в точке останова, это волшебным образом работал. Я не знаю почему ... может быть, это проблемы со входом в раздел. или, может быть, это проблема версии QEMU ... что угодно. но это работает на данный момент ...

1

Я обновился до версии:

$ qemu --version
QEMU PC emulator version 0.12.50, Copyright (c) 2003-2008 Fabrice Bellard

И теперь у меня все работает нормально.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .