[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v2] gdbstub: Fix single-step issue by confirming 'vContSuppor
From: |
Alex Bennée |
Subject: |
Re: [PATCH v2] gdbstub: Fix single-step issue by confirming 'vContSupported+' feature to gdb |
Date: |
Mon, 09 Mar 2020 14:48:47 +0000 |
User-agent: |
mu4e 1.3.9; emacs 28.0.50 |
Changbin Du <address@hidden> writes:
> hello, is this patch ready to merge now? Thanks!
>
> On Fri, Feb 21, 2020 at 08:25:59AM +0800, Changbin Du wrote:
>> Recently when debugging an arm32 system on qemu, I found sometimes the
>> single-step command (stepi) is not working. This can be reproduced by
>> below steps:
>> 1) start qemu-system-arm -s -S .. and wait for gdb connection.
>> 2) start gdb and connect to qemu. In my case, gdb gets a wrong value
>> (0x60) for PC, which is an another bug.
>> 3) After connected, type 'stepi' and expect it will stop at next ins.
>>
>> But, it has never stopped. This because:
>> 1) We doesn't report ‘vContSupported’ feature to gdb explicitly and gdb
>> think we do not support it. In this case, gdb use a software breakpoint
>> to emulate single-step.
>> 2) Since gdb gets a wrong initial value of PC, then gdb inserts a
>> breakpoint to wrong place (PC+4).
OK I was initially confused because I couldn't replicate the failure
with the aarch64 tests. With or without the vContSupported reply I saw
the exact same set of messages go between gdbstub and gdb.
However I did replicate with:
./arm-softmmu/qemu-system-arm -monitor none -display none \
-chardev file,path=test-armv6m-undef.out,id=output \
-semihosting -M microbit \
-kernel tests/tcg/arm-softmmu/test-armv6m-undef \
-s -S -d trace:gdbstub\* -D gdbstub.dump
So I have applied it to me tree.
--
Alex Bennée