Проблемы с точкой останова GDB при подключении к QEMU

1990
RedGrittyBrick

У меня следующая проблема: Когда я подключаю 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 

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

1

2 ответа на вопрос

1
Patrick

У меня аналогичные проблемы с ядром 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 

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