This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH] fix PR 15180 "May only run agent-printf on the target"
- From: Hui Zhu <teawater at gmail dot com>
- To: Pedro Alves <palves at redhat dot com>
- Cc: gdb-patches ml <gdb-patches at sourceware dot org>
- Date: Tue, 2 Jul 2013 00:07:45 +0800
- Subject: Re: [PATCH] fix PR 15180 "May only run agent-printf on the target"
- References: <CANFwon1CBRpQYOCzUD16JX-4spE-cMJFq4PF0oGd8m1irJndoA at mail dot gmail dot com> <51CB2BAA dot 1070507 at redhat dot com> <CANFwon1j8zhxShFKh0iUOcp-kqdBjm_5bZvAKoFamAxoff-KeA at mail dot gmail dot com> <51D13985 dot 9020709 at redhat dot com> <CANFwon0rsav9_cQ5pq+LKiRcPivRGLTUmFxWk+BxWQnsO4_ipg at mail dot gmail dot com> <51D19258 dot 4050705 at redhat dot com>
On Mon, Jul 1, 2013 at 10:29 PM, Pedro Alves <palves@redhat.com> wrote:
> On 07/01/2013 09:51 AM, Hui Zhu wrote:
>> On Mon, Jul 1, 2013 at 4:10 PM, Pedro Alves <palves@redhat.com> wrote:
>>> On 06/30/2013 04:17 PM, Hui Zhu wrote:
>>>>>> If dprintf style is agent, then the target doesn't report events
>>>>>> for such hits. If we happen to see a trap reported for the
>>>>>> same address as another breakpoint, the trap is surely not explained
>>>>>> by the dprintf. IOW, we shouldn't have a bpstat a dprintf w/ style
>>>>>> agent at all. What is need is to override the breakpoint_hit method
>>>>>> of dprintf_breakpoint_ops to always return false for agent style dprintfs.
>>>>>>
>>>>>> Or maybe I'm missing something. I have a hard time going from
>>>>>> the bug description in the PR to the patch.
>>>> OK. I add dprintf_check_status in the new patch according to your comments.
>>>>
>>>
>>> But I suggested the breakpoint_ops->breakpoint_hit not breakpoint_ops->check_status.
>>> An agent-style dprintf is just like a tracepoint. It can't ever explain
>>> a stop. See tracepoint_breakpoint_hit. If it didn't work, please explain why.
>>
>> OK. Post a new version according to your comments.
>> Please help me review it.
>
> So I've now picked the patches from
> <http://sourceware.org/ml/gdb-patches/2013-06/msg00367.html>
Oops, I so sorry that dprintf-remote-cond-server.txt in that url is
not the right version. Could you help me try the new version in
http://sourceware.org/ml/gdb-patches/2013-07/msg00038.html
Thanks,
Hui
>
> and then applied these new dprint-same-addr patches on top.
>
> They completely break gdbserver. :-/ First I tried:
>
> $ make check RUNTESTFLAGS="--target_board=native-gdbserver dprintf-same-addr.exp"
> ...
> Running target native-gdbserver
> Using ../../../src/gdb/testsuite/boards/../boards/native-gdbserver.exp as board description file for target.
> Using ../../../src/gdb/testsuite/config/gdbserver.exp as tool-and-target-specific interface file.
> Running ../../../src/gdb/testsuite/gdb.base/dprintf-same-addr.exp ...
>
> === gdb Summary ===
>
> /home/pedro/gdb/mygit/build/gdb/testsuite/../../gdb/gdb version 7.6.50.20130701-cvs -nw -nx -data-directory /home/pedro/gdb/mygit/build/gdb/testsuite/../data-directory
>
> make[1]: Leaving directory `/home/pedro/gdb/mygit/build/gdb/testsuite'
> $
>
> No FAILs/PASSes/UNSUPPORTED/etc., no nothing, is odd. Turns out
> that the program isn't even stopping at main. That should have
> resulted in a FAIL. (Please fix that.)
>
> Trying some other existing test shows:
>
> Running target native-gdbserver
> Using ../../../src/gdb/testsuite/boards/../boards/native-gdbserver.exp as board description file for target.
> Using ../../../src/gdb/testsuite/config/gdbserver.exp as tool-and-target-specific interface file.
> Running ../../../src/gdb/testsuite/gdb.base/break.exp ...
> FAIL: gdb.base/break.exp: run until function breakpoint
> FAIL: gdb.base/break.exp: run until breakpoint set at a line number (the program is no longer running)
> FAIL: gdb.base/break.exp: run until file:function(6) breakpoint (the program is no longer running)
> FAIL: gdb.base/break.exp: run until file:function(5) breakpoint (the program is no longer running)
> FAIL: gdb.base/break.exp: run until file:function(4) breakpoint (the program is no longer running)
> FAIL: gdb.base/break.exp: run until file:function(3) breakpoint (the program is no longer running)
> FAIL: gdb.base/break.exp: run until file:function(2) breakpoint (the program is no longer running)
> FAIL: gdb.base/break.exp: run until file:function(1) breakpoint (the program is no longer running)
> FAIL: gdb.base/break.exp: run until quoted breakpoint (the program is no longer running)
>
> ...
>
> I didn't bother to run the whole testsuite.
>
> At least with native testing I got:
>
> $ make check RUNTESTFLAGS="dprintf-same-addr.exp"
> ...
> # of expected passes 29
> # of unsupported tests 1
> ...
>
> --
> Pedro Alves
>