All of lore.kernel.org
 help / color / mirror / Atom feed
From: Zhiyuan Shao <zyshao@mail.hust.edu.cn>
To: Blue Swirl <blauwirbel@gmail.com>
Cc: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] About QEMU debugging console
Date: Thu, 28 Oct 2010 10:20:35 +0800	[thread overview]
Message-ID: <488231669.11109@mail.hust.edu.cn> (raw)
Message-ID: <1288232435.2180.7.camel@zhiyuan-desktop> (raw)
In-Reply-To: <AANLkTikhp2b73YVP=tMaKnt0s=rEvMwTypH53FawzMek@mail.gmail.com>

On Wed, 2010-10-27 at 20:07 +0000, Blue Swirl wrote:
> On Wed, Oct 27, 2010 at 1:10 AM, Zhiyuan Shao <zyshao@mail.hust.edu.cn> wrote:
> > On Tue, 2010-10-26 at 18:59 +0000, Blue Swirl wrote:
> >> On Tue, Oct 26, 2010 at 12:22 PM, Zhiyuan Shao <zyshao@hust.edu.cn> wrote:
> >> > Hi team,
> >> >
> >> > I am a Qemu User, and using Qemu 0.13.0 to debugging the linux kernel
> >> > code (Qemu+GDB).
> >> >
> >> > During the usage, I found the Qemu debugging console (i.e., entered by
> >> > pressing Ctl+Alt+2 in Qemu SDL window or by passing "-monitor stdio" to
> >> > Qemu in the command line) is rather difficult to use. It can not show
> >> > some important information, e.g., on i386 platform, which is my major
> >> > interest, it can not show IDT, GDT information. Regarding the page
> >> > mapping information, "info tlb" actually do a really bad job.
> >>
> >> How is that bad?
> >>
> > I booted a Linux OS (i386 with PAE support), and has following
> > virtual-to-physical mappings:
> > [0xff00-0000,0xffbf-ffff] -> [0x0000-0000, 0x00bf-ffff]
> > [0x0000-0000,0x00ff-ffff] -> [0x0000-0000, 0x00ff-ffff]
> >
> > while now, with "info mem" command of Qemu debugging console, the output
> > is like:
> > (qemu) info mem
> > 00000000-00400000 00400000 -r-
> > 00c00000-00c08000 00008000 -rw
> > 00c08000-00c09000 00001000 ur-
> > 00c09000-00c0a000 00001000 urw
> > 00c0e000-00c0f000 00001000 urw
> > 00c10000-00c11000 00001000 -r-
> > 00c11000-00c12000 00001000 ur-
> > 00c12000-00c13000 00001000 -r-
> > 00c14000-00c16000 00002000 -r-
> > 00c1b000-00c1e000 00003000 -rw
> > 00c20000-00c40000 00020000 -rw
> > 00c40000-00c41000 00001000 -r-
> > 00c41000-00c42000 00001000 ur-
> > 00c42000-00c43000 00001000 -rw
> > 00c44000-00c60000 0001c000 -rw
> > 00c67000-00c70000 00009000 -rw
> > 00c71000-00c74000 00003000 ur-
> > 00c75000-00c76000 00001000 urw
> > 00c77000-00c78000 00001000 ur-
> > 00c78000-00c79000 00001000 -rw
> > 00c7a000-00d00000 00086000 -rw
> > 00d18000-00d19000 00001000 urw
> > 00d19000-00d1a000 00001000 -rw
> > 00d1d000-00d1e000 00001000 -r-
> > 00d22000-00d23000 00001000 -r-
> > 00d2a000-00d2b000 00001000 -rw
> > 00df0000-00df1000 00001000 -r-
> > 00df1000-00df2000 00001000 urw
> > 00df4000-00df5000 00001000 -r-
> > 00df5000-00df6000 00001000 urw
> > 00df7000-00df8000 00001000 urw
> > 01000000-01400000 00400000 -rw
> > 01400000-01800000 00400000 -r-
> > 01800000-01c00000 00400000 urw
> > 01c00000-02000000 00400000 -rw
> > 04c00000-05000000 00400000 ur-
> > 05c00000-06000000 00400000 -rw
> > 0bc00000-0c000000 00400000 -r-
> > 0c800000-0cc00000 00400000 urw
> > 0d800000-0e000000 00800000 ur-
> > 0e400000-0e800000 00400000 ur-
> > 10400000-10800000 00400000 -rw
> > 12000000-12001000 00001000 -rw
> > 12002000-12003000 00001000 -rw
> > 12004000-12005000 00001000 -rw
> > 12006000-12007000 00001000 -rw
> > 12008000-12009000 00001000 -rw
> > 1200a000-1200b000 00001000 -rw
> > 1200c000-1200d000 00001000 -rw
> > 1200e000-1200f000 00001000 -rw
> > 13bf0000-13bf1000 00001000 -rw
> > 13bf2000-13bf3000 00001000 -rw
> > 13bf4000-13bf5000 00001000 -rw
> > 13bf6000-13bf7000 00001000 -rw
> > 13bf8000-13bf9000 00001000 -rw
> > 13bfa000-13bfb000 00001000 -rw
> >
> > Donot know what the "active virtual memory mappings" means for "info
> > mem" command, but the results displayed is not very likely being
> > correct.
> >
> > While with "info tlb" command:
> >
> > (qemu) info tlb
> > 00000000: 15c00000 -PDA-T--
> > 00c00000: f000f000 G-D-C--W
> > 00c01000: f000f000 G-D-C--W
> > 00c02000: f000e000 --D----W
> > 00c03000: f000f000 G-D-C--W
> > 00c04000: f000f000 G-D-C--W
> > 00c05000: f000f000 G-D-C--W
> > 00c06000: f000f000 G-D-C--W
> > 00c07000: f000f000 G-D-C--W
> > 00c08000: f000f000 ---A--U-
> > 00c09000: f000e000 G-----UW
> > 00c0e000: f000e000 G-D-C-UW
> > 00c10000: c0008000 G--ACT--
> > 00c11000: f000f000 --D--TU-
> > 00c12000: f000f000 --D-----
> > 00c14000: f000e000 G--ACT--
> > 00c15000: f000f000 --D-CT--
> > 00c1b000: f000f000 G-D-C--W
> > 00c1c000: f000f000 G-D-C--W
> > 00c1d000: f000f000 G-D-C--W
> > 00c20000: f000f000 G-D-C--W
> > 00c21000: f000f000 G-D-C--W
> > 00c22000: f000f000 G-D-C--W
> > 00c23000: f000f000 G-D-C--W
> > 00c24000: f000f000 G-D-C--W
> > 00c25000: f000f000 G-D-C--W
> > 00c26000: f000f000 G-D-C--W
> > 00c27000: f000f000 G-D-C--W
> > 00c28000: f000f000 G-D-C--W
> > 00c29000: f000f000 G-D-C--W
> > 00c2a000: f000f000 G-D-C--W
> > 00c2b000: f000f000 G-D-C--W
> > 00c2c000: f000f000 G-D-C--W
> > 00c2d000: f000f000 G-D-C--W
> > 00c2e000: f000f000 G-D-C--W
> > 00c2f000: f000f000 G-D-C--W
> > 00c30000: f000f000 G-D-C--W
> > 00c31000: f000f000 G-D-C--W
> > 00c32000: f000f000 G-D-C--W
> > 00c33000: f000f000 G-D-C--W
> > 00c34000: f000f000 G-D-C--W
> > 00c35000: f000f000 G-D-C--W
> > 00c36000: f000f000 G-D-C--W
> > 00c37000: f000f000 G-D-C--W
> > 00c38000: f000f000 G-D-C--W
> > 00c39000: f000f000 G-D-C--W
> > 00c3a000: f000f000 G-D-C--W
> > 00c3b000: f000f000 G-D-C--W
> > 00c3c000: f000f000 G-D-C--W
> > 00c3d000: f000f000 G-D-C--W
> > 00c3e000: f000f000 G-D-C--W
> > 00c3f000: f000f000 G-D-C--W
> > 00c40000: f000e000 --D-CT--
> > 00c41000: 9fc00000 ---ACTU-
> > 00c42000: f000f000 G-D-C--W
> > 00c44000: f000f000 G-D-C--W
> > 00c45000: f000f000 G-D-C--W
> > 00c46000: f000f000 G-D-C--W
> > 00c47000: f000f000 G-D-C--W
> > 00c48000: f000f000 G-D-C--W
> > 00c49000: f000f000 G-D-C--W
> > 00c4a000: f000f000 G-D-C--W
> > 00c4b000: f000f000 G-D-C--W
> > 00c4c000: f000f000 G-D-C--W
> > 00c4d000: f000f000 G-D-C--W
> > 00c4e000: f000f000 G-D-C--W
> > 00c4f000: f000f000 G-D-C--W
> > 00c50000: f000f000 G-D-C--W
> > 00c51000: f000f000 G-D-C--W
> > 00c52000: f000f000 G-D-C--W
> > 00c53000: f000f000 G-D-C--W
> > 00c54000: f000f000 G-D-C--W
> > 00c55000: f000f000 G-D-C--W
> > 00c56000: f000f000 G-D-C--W
> > 00c57000: f000f000 G-D-C--W
> > 00c58000: f000f000 G-D-C--W
> > 00c59000: f000f000 G-D-C--W
> > 00c5a000: f000f000 G-D-C--W
> > 00c5b000: f000f000 G-D-C--W
> > 00c5c000: f000f000 G-D-C--W
> > 00c5d000: f000f000 G-D-C--W
> > 00c5e000: f000f000 G-D-C--W
> > 00c5f000: f000f000 G-D-C--W
> > 00c67000: f000f000 G-D-C--W
> > 00c68000: f000f000 G-D-C--W
> > 00c69000: f000f000 G-D-C--W
> > 00c6a000: f000f000 G-D-C--W
> > 00c6b000: f000f000 G-D-C--W
> > 00c6c000: f000f000 G-D-C--W
> > 00c6d000: f000f000 G-D-C--W
> > 00c6e000: f000f000 G-D-C--W
> > 00c6f000: f000f000 G-D-C--W
> > 00c71000: f000f000 G-D---U-
> > 00c72000: f000f000 G-D---U-
> > 00c73000: f000f000 G-D---U-
> > 00c75000: f000e000 --DA--UW
> > 00c77000: f000f000 G-D---U-
> > 00c78000: f000f000 G-D-C--W
> > 00c7a000: f000f000 G-D-C--W
> > 00c7b000: f000f000 G-D-C--W
> > 00c7c000: f000f000 G-D-C--W
> > 00c7d000: f000f000 G-D-C--W
> > 00c7e000: f000f000 G-D-C--W
> > 00c7f000: f000f000 G-D-C--W
> > 00c80000: f000f000 G-D-C--W
> > 00c81000: f000f000 G-D-C--W
> > 00c82000: f000f000 G-D-C--W
> > 00c83000: f000f000 G-D-C--W
> > 00c84000: f000f000 G-D-C--W
> > 00c85000: f000f000 G-D-C--W
> > 00c86000: f000f000 G-D-C--W
> > 00c87000: f000f000 G-D-C--W
> > 00c88000: f000f000 G-D-C--W
> > 00c89000: f000f000 G-D-C--W
> > 00c8a000: f000f000 G-D-C--W
> > 00c8b000: f000f000 G-D-C--W
> > 00c8c000: f000f000 G-D-C--W
> > 00c8d000: f000f000 G-D-C--W
> > 00c8e000: f000f000 G-D-C--W
> > 00c8f000: f000f000 G-D-C--W
> > 00c90000: f000f000 G-D-C--W
> > 00c91000: f000f000 G-D-C--W
> > 00c92000: f000f000 G-D-C--W
> > 00c93000: f000f000 G-D-C--W
> > 00c94000: f000f000 G-D-C--W
> > 00c95000: f000f000 G-D-C--W
> > 00c96000: f000f000 G-D-C--W
> > 00c97000: f000f000 G-D-C--W
> > 00c98000: f000f000 G-D-C--W
> > 00c99000: f000f000 G-D-C--W
> > 00c9a000: f000f000 G-D-C--W
> > 00c9b000: f000f000 G-D-C--W
> > 00c9c000: f000f000 G-D-C--W
> > 00c9d000: f000f000 G-D-C--W
> > 00c9e000: f000f000 G-D-C--W
> > 00c9f000: f000f000 G-D-C--W
> > 00ca0000: f000f000 G-D-C--W
> > 00ca1000: f000f000 G-D-C--W
> > 00ca2000: f000f000 G-D-C--W
> > 00ca3000: f000f000 G-D-C--W
> > 00ca4000: f000f000 G-D-C--W
> > 00ca5000: f000f000 G-D-C--W
> > 00ca6000: f000f000 G-D-C--W
> > 00ca7000: f000f000 G-D-C--W
> > 00ca8000: f000f000 G-D-C--W
> > 00ca9000: f000f000 G-D-C--W
> > 00caa000: f000f000 G-D-C--W
> > 00cab000: f000f000 G-D-C--W
> > 00cac000: f000f000 G-D-C--W
> > 00cad000: f000f000 G-D-C--W
> > 00cae000: f000f000 G-D-C--W
> > 00caf000: f000f000 G-D-C--W
> > 00cb0000: f000f000 G-D-C--W
> > 00cb1000: f000f000 G-D-C--W
> > 00cb2000: f000f000 G-D-C--W
> > 00cb3000: f000f000 G-D-C--W
> > 00cb4000: f000f000 G-D-C--W
> > 00cb5000: f000f000 G-D-C--W
> > 00cb6000: f000f000 G-D-C--W
> > 00cb7000: f000f000 G-D-C--W
> > 00cb8000: f000f000 G-D-C--W
> > 00cb9000: f000f000 G-D-C--W
> > 00cba000: f000f000 G-D-C--W
> > 00cbb000: f000f000 G-D-C--W
> > 00cbc000: f000f000 G-D-C--W
> > 00cbd000: f000f000 G-D-C--W
> > 00cbe000: f000f000 G-D-C--W
> > 00cbf000: f000f000 G-D-C--W
> > 00cc0000: f000f000 G-D-C--W
> > 00cc1000: f000f000 G-D-C--W
> > 00cc2000: f000f000 G-D-C--W
> > 00cc3000: f000f000 G-D-C--W
> > 00cc4000: f000f000 G-D-C--W
> > 00cc5000: f000f000 G-D-C--W
> > 00cc6000: f000f000 G-D-C--W
> > 00cc7000: f000f000 G-D-C--W
> > 00cc8000: f000f000 G-D-C--W
> > 00cc9000: f000f000 G-D-C--W
> > 00cca000: f000f000 G-D-C--W
> > 00ccb000: f000f000 G-D-C--W
> > 00ccc000: f000f000 G-D-C--W
> > 00ccd000: f000f000 G-D-C--W
> > 00cce000: f000f000 G-D-C--W
> > 00ccf000: f000f000 G-D-C--W
> > 00cd0000: f000f000 G-D-C--W
> > 00cd1000: f000f000 G-D-C--W
> > 00cd2000: f000f000 G-D-C--W
> > 00cd3000: f000f000 G-D-C--W
> > 00cd4000: f000f000 G-D-C--W
> > 00cd5000: f000f000 G-D-C--W
> > 00cd6000: f000f000 G-D-C--W
> > 00cd7000: f000f000 G-D-C--W
> > 00cd8000: f000f000 G-D-C--W
> > 00cd9000: f000f000 G-D-C--W
> > 00cda000: f000f000 G-D-C--W
> > 00cdb000: f000f000 G-D-C--W
> > 00cdc000: f000f000 G-D-C--W
> > 00cdd000: f000f000 G-D-C--W
> > 00cde000: f000f000 G-D-C--W
> > 00cdf000: f000f000 G-D-C--W
> > 00ce0000: f000f000 G-D-C--W
> > 00ce1000: f000f000 G-D-C--W
> > 00ce2000: f000f000 G-D-C--W
> > 00ce3000: f000f000 G-D-C--W
> > 00ce4000: f000f000 G-D-C--W
> > 00ce5000: f000f000 G-D-C--W
> > 00ce6000: f000f000 G-D-C--W
> > 00ce7000: f000f000 G-D-C--W
> > 00ce8000: f000f000 G-D-C--W
> > 00ce9000: f000f000 G-D-C--W
> > 00cea000: f000f000 G-D-C--W
> > 00ceb000: f000f000 G-D-C--W
> > 00cec000: f000f000 G-D-C--W
> > 00ced000: f000f000 G-D-C--W
> > 00cee000: f000f000 G-D-C--W
> > 00cef000: f000f000 G-D-C--W
> > 00cf0000: f000f000 G-D-C--W
> > 00cf1000: f000f000 G-D-C--W
> > 00cf2000: f000f000 G-D-C--W
> > 00cf3000: f000f000 G-D-C--W
> > 00cf4000: f000f000 G-D-C--W
> > 00cf5000: f000f000 G-D-C--W
> > 00cf6000: f000f000 G-D-C--W
> > 00cf7000: f000f000 G-D-C--W
> > 00cf8000: f000f000 G-D-C--W
> > 00cf9000: f000f000 G-D-C--W
> > 00cfa000: f000f000 G-D-C--W
> > 00cfb000: f000f000 G-D-C--W
> > 00cfc000: f000f000 G-D-C--W
> > 00cfd000: f000f000 G-D-C--W
> > 00cfe000: f000f000 G-D-C--W
> > 00cff000: f000f000 G-D-C--W
> > 00d18000: d4000000 ------UW
> > 00d19000: 00000000 -------W
> > 00d1d000: 00c00000 G-------
> > 00d22000: 00085000 G-DACT--
> > 00d2a000: c0003000 G--A---W
> > 00df0000: fe830000 --------
> > 00df1000: 003f7000 G-DACTUW
> > 00df4000: fe827000 --D-----
> > 00df5000: a87cb000 --DACTUW
> > 00df7000: 00000000 -----TUW
> > 01000000: e4500000 GPDACT-W
> > 01400000: 24500000 -P-A----
> > 01800000: e0200000 GPDACTUW
> > 01c00000: 00e00000 GP---T-W
> > 04c00000: b8a00000 GP---TU-
> > 05c00000: e2000000 GP-----W
> > 0bc00000: 75f00000 GP---T--
> > 0c800000: 13e00000 -PDACTUW
> > 0d800000: 90f00000 GPDA--U-
> > 0dc00000: 00200000 -P---TU-
> > 0e400000: 00000000 -P---TU-
> > 10400000: 90900000 -PDA-T-W
> > 12000000: 002a8000 --DA---W
> > 12002000: 00200000 --DA---W
> > 12004000: 00400000 --DA---W
> > 12006000: 00600000 --DA---W
> > 12008000: 00800000 --DA---W
> > 1200a000: 00a00000 --DA---W
> > 1200c000: 00c00000 --DA---W
> > 1200e000: 00e00000 --DA---W
> > 13bf0000: 002a8000 --DA---W
> > 13bf2000: 00200000 --DA---W
> > 13bf4000: 00400000 --DA---W
> > 13bf6000: 00600000 --DA---W
> > 13bf8000: 00800000 --DA---W
> > 13bfa000: 00a00000 --DA---W
> > (qemu)
> >
> > Is here someone can explain such output?
> 
> The output is generated in monitor.c:1812:1926. The functions use only
> uint32_t, so I suppose PAE support has not been added.
> 
> >> > On this side, I think Bochs is good. Unfortunately, it seems do not
> >> > support gdb-stub debugging and general purpose debugging at the same
> >> > time.
> >> >
> >> > I do not know if the Qemu team had made any plans to improve this? such
> >> > as embedding the bochs debugging alike functionalities in future Qemu
> >> > releases?
> >>
> >> Perhaps nobody were aware that there were any lack of functionalities.
> >> I think these should be very easy to add.
> >>
> >
> > This should be not so hard, and I may have a try in the close future.
> > The difficulty here is that you have to consider several paging
> > techniques invented by Intel, such as, i386, PAE, PSE(36), x86_64. And
> > these works ONLY for the i386 platform.
> >
> > I just wondering: It is for sure that I am not the very first person who
> > encounter such problems in the history of Qemu development. Why these
> > simple functionalities were not added to the main release till now?
> 
> I think that you really are the first one to report, so nobody has
> ever needed such functionalities yet. In fact, I searched mail
> archives and there was nothing relevant for PAE.
> 

OK, If I get some time in the close future, I will try to improve the
relevant part (todo list: PAE/PSE(36), IDT, GDT, x86_64, possibly
pipe-like feature) of Qemu that I think it will be helpful for people
debugging code on the i386 platform. 

Anyway, are such improvements interested in Qemu community? If so, I
will submit the code patch I made based on 0.13.0 to this list. Do hope
later version of Qemu supports these.

  reply	other threads:[~2010-10-28  2:20 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-10-26 12:22 [Qemu-devel] About QEMU debugging console Zhiyuan Shao
2010-10-26 12:22 ` Zhiyuan Shao
2010-10-26 18:59   ` Blue Swirl
2010-10-27  1:10     ` Zhiyuan Shao
2010-10-27  1:10       ` Zhiyuan Shao
2010-10-27 20:07         ` Blue Swirl
2010-10-28  2:20           ` Zhiyuan Shao [this message]
2010-10-28  2:20             ` Zhiyuan Shao
2010-10-28 10:59               ` Kevin Wolf
2010-10-28 12:36   ` [Qemu-devel] " Jan Kiszka
2010-10-29  2:41     ` Zhiyuan Shao
2010-10-29  2:41       ` Zhiyuan Shao
2010-10-29  7:32       ` Jan Kiszka
2010-10-31 10:49         ` Andreas Färber

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=488231669.11109@mail.hust.edu.cn \
    --to=zyshao@mail.hust.edu.cn \
    --cc=blauwirbel@gmail.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.