Debugging a 64-bit kernel in qemu

Markus Duft
Mon Jan 3 10:27:00 GMT 2011


I have been playing a little with this: I'm writing a kernel for both x86 and x86-64. While doing so, i'd like to debug the kernel using qemu (and it's gdb stub) and gdb. This worked very well until qemu-0.11.1 (gdb version does not seem to play any role...). From there on, debugging the 64 bit version no longer works. My sessions look like this with qemu-0.13.50 (and any version above 0.11.1, actually...):

mduft@s01en22 /big/Privat/osdev/tachyon2 $ x86_64-pc-linux-gnu-gdb .build/x86_64/x86_64-tachyon
GNU gdb (GDB)
Reading symbols from /big/Privat/osdev/tachyon2/.build/x86_64/x86_64-tachyon...done.
(gdb) target remote:1234
Remote debugging using :1234
0x0000000000000000 in ?? ()
(gdb) b boot
Breakpoint 1 at 0xffffffff80119000: file /big/Privat/osdev/tachyon2/core/tachyon.boot/, line 25.
(gdb) c
Remote 'g' packet reply is too long: 09ea1180ffffffff00950000000000000000000000000000000010000000000002b0ad2b009500000095000000000000d6101180ffffffffce101180ffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000901180ffffffff4600000018000000100000001000000010000000100000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007f0300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
(gdb) quit

actuallly, i _can_ debug the kernel, nut only until the long mode switch occurs. after this point: no luck... :[

now for the questions:

1) is this a problem with qemu or was qemu "fixed" and gdb has a problem?
   (that's why i CCd the gdb list ;)).
2) is there any plan to fix this issue?
3) is there some kind of workaround i can use (i'd be happy with an ugly/unsupported patch too, since i build all my stuff myself ;)).

Thanks in advance!
Regards, Markus

More information about the Gdb mailing list