qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] Re: [Bug 581353] Re: qemu doesn't stop execution upon hitti


From: Jan Kiszka
Subject: [Qemu-devel] Re: [Bug 581353] Re: qemu doesn't stop execution upon hitting a breakpoint
Date: Wed, 16 Jun 2010 10:02:52 +0200
User-agent: Mozilla/5.0 (X11; U; Linux i686 (x86_64); de; rv:1.8.1.12) Gecko/20080226 SUSE/2.0.0.12-1.1 Thunderbird/2.0.0.12 Mnenhy/0.7.5.666

Jun Koi wrote:
> On Wed, Jun 16, 2010 at 4:49 PM, Jan Kiszka <address@hidden> wrote:
>> Jun Koi wrote:
>>> On Wed, Jun 16, 2010 at 4:40 PM, Jan Kiszka <address@hidden> wrote:
>>>> Jun Koi wrote:
>>>>> On Wed, Jun 16, 2010 at 4:07 PM, Alfredo Mungo <address@hidden> wrote:
>>>>>> Same thing happens to me, same versions as above.. I must turn to
>>>>>> another app to accomplish my work while awaiting for a bug-fix, the code
>>>>>> is perfectly executed but while gdb hits the breakpoints qemu goes on..
>>>>>>
>>>>>> --
>>>>>> qemu doesn't stop execution upon hitting a breakpoint
>>>>>> https://bugs.launchpad.net/bugs/581353
>>>>>> You received this bug notification because you are a member of qemu-
>>>>>> devel-ml, which is subscribed to QEMU.
>>>>> i think this bug has been fixed in 0.12.4. have you tried that??
>>>> Or this is a well-known gdb deficit: if the bootloader operates in
>>>> real-mode, you have to set two breakpoints, one at the linear address to
>>>> make qemu catch it, and another one at the segment offset to avoid gdb
>>>> skipping the exit due to ip != bp-addr.
>>>>
>>>> gdb is still fairly restricted when it comes to system-level debugging,
>>>> specifically as it lacks support for special x86 registers and the
>>>> segmented addressing mode.
>>> what do you mean by "it lacks support for special x86 registers" ?
>> idtr, gdtr, ldtr, tr, crX - to name the most important ones.
> 
> do you mean gdb has no command to show the values of these registers?
> or you mean it doenst have anyway to get notified when these registers
> are modified? (i dont see how this is useful for debugging, anway)

Both: Neither supports gdb them as part of its register set nor does the
remote gdb protocol transport them.

You need this for segmented addressing, either in real mode (linear
address = segment * 16 + offset) or in segmented protected mode (less
common in modern OSes, but at least still used for per-CPU variables in
Linux). And you need a way to detect the current operation mode at all
to switch between 16/32, and 64 bit registers (set arch i386 vs.
i386:x86-64). You don't need all this for application-level debugging,
and that's why gdb lacks it so far.

Jan

Attachment: signature.asc
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]