* Debugging a 64-bit kernel in qemu
@ 2011-01-03 10:27 Markus Duft
2011-01-03 11:15 ` Jan Kiszka
0 siblings, 1 reply; 3+ messages in thread
From: Markus Duft @ 2011-01-03 10:27 UTC (permalink / raw)
To: qemu-devel, gdb
Hi!
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) 7.2.50.20110103-cvs
[snip]
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/Entry.cc, line 25.
(gdb) c
Continuing.
Remote 'g' packet reply is too long: 09ea1180ffffffff00950000000000000000000000000000000010000000000002b0ad2b009500000095000000000000d6101180ffffffffce101180ffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000901180ffffffff4600000018000000100000001000000010000000100000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007f0300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000801f0000
(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
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: Debugging a 64-bit kernel in qemu
2011-01-03 10:27 Debugging a 64-bit kernel in qemu Markus Duft
@ 2011-01-03 11:15 ` Jan Kiszka
[not found] ` <4D21BDFA.1050105@salomon.at>
0 siblings, 1 reply; 3+ messages in thread
From: Jan Kiszka @ 2011-01-03 11:15 UTC (permalink / raw)
To: Markus Duft; +Cc: qemu-devel, gdb
[-- Attachment #1: Type: text/plain, Size: 2742 bytes --]
Am 03.01.2011 11:27, Markus Duft wrote:
> Hi!
>
> 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) 7.2.50.20110103-cvs
> [snip]
> 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/Entry.cc, line 25.
> (gdb) c
> Continuing.
> Remote 'g' packet reply is too long: 09ea1180ffffffff00950000000000000000000000000000000010000000000002b0ad2b009500000095000000000000d6101180ffffffffce101180ffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000901180ffffffff4600000018000000100000001000000010000000100000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007f030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
> 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
> 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000801f0000
> (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 ;)).
You see the effects of a workaround in qemu for gdb shortcomings on x86.
See e.g. http://thread.gmane.org/gmane.comp.emulators.qemu/80327, there
should be some threads on the gdb list as well.
Jan
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 259 bytes --]
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2011-01-03 13:00 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-01-03 10:27 Debugging a 64-bit kernel in qemu Markus Duft
2011-01-03 11:15 ` Jan Kiszka
[not found] ` <4D21BDFA.1050105@salomon.at>
[not found] ` <4D21C0AA.8010907@salomon.at>
2011-01-03 13:00 ` Jan Kiszka
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox