From: Pedro Alves <palves@redhat.com>
To: Hui Zhu <hui_zhu@mentor.com>
Cc: gdb-patches ml <gdb-patches@sourceware.org>
Subject: Re: [PATCH] Let gdbserver doesn't tell GDB it support target-side breakpoint conditions and commands if it doesn't support 'Z' packet
Date: Mon, 21 Oct 2013 15:37:00 -0000 [thread overview]
Message-ID: <52654A2C.9010202@redhat.com> (raw)
In-Reply-To: <5265022F.8060203@mentor.com>
On 10/21/2013 11:30 AM, Hui Zhu wrote:
> We found that in powerpc arch board, it cannot pass some dprintf test:
> FAIL: gdb.base/dprintf.exp: dprintf info 2 (pattern 6)
> FAIL: gdb.mi/mi-dprintf.exp: mi expect stop (unknown output after running)
> FAIL: gdb.mi/mi-dprintf.exp: mi 1st dprintf, agent (unknown output after running)
>
> This because the gdbserver will always tell GDB that it support target-side breakpoint conditions and commands. So "set dprintf-style agent" will always got success.
> But target-side breakpoint conditions and commands are depend on 'Z' packet because GDB just can post target-side breakpoint conditions and commands with 'Z' packet.
> The test will check if "set dprintf-style agent" success or not. Because it will always succes. So GDB change the commands to agent-printf that will make test get fail.
There happens to be a single "the_low_target.insert_point" entry
point in gdbserver for all sorts of Z packets. But Z0, Z1, Z2, etc.,
they're all different packets (software breakpoints, hardware breakpoints,
watchpoints, etc.). A target might well support Z1 but not Z0. Or it
may support Z2/Z3/Z4, but not Z0..Z1 -- that's the case of MIPS gdbserver.
So, having a "the_low_target.insert_point" hook installed does not
actually mean that dprintf will work. (Consider what the patch
would need to do if instead of a single "the_low_target.insert_point"
entry point, we had one for each Zx packet.)
In the general case, gdbserver can't possibly know what packet GDB
will want to send with target conditions or target commands in. GDB
could end up sending either a Z0, or a Z1. The target might support
Z1, but not Z0, leaving gdb to handle memory breakpoints.
The concept of target-side conditions and commands is broader
than dprintf.
I think that first, GDB should be taught to handle this scenario
itself. That is, if we try this against gdbserver:
(gdb) set dprintf-style agent
(gdb) set remote Z-packet off
(gdb) dprint main,"foo"
Dprintf 1 at 0x410776: file foo.c, line 10.
(gdb) c
GDB should realize that the dprintf won't work, right
at insertion time, but, it currently does not.
--
Pedro Alves
next prev parent reply other threads:[~2013-10-21 15:37 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-10-21 10:30 Hui Zhu
2013-10-21 15:37 ` Pedro Alves [this message]
2013-11-28 10:56 ` Hui Zhu
2013-11-28 17:38 ` Maciej W. Rozycki
2013-11-29 9:41 ` Hui Zhu
2013-11-29 15:27 ` [pushed] Plug target side conditions and commands leaks (was: Re: [PATCH] Let gdbserver doesn't tell GDB it support target-side breakpoint conditions and commands if it doesn't support 'Z' packet) Pedro Alves
2013-11-29 16:05 ` [PATCH] Let gdbserver doesn't tell GDB it support target-side breakpoint conditions and commands if it doesn't support 'Z' packet Pedro Alves
2013-12-02 12:45 ` Hui Zhu
2013-12-02 14:38 ` Pedro Alves
2013-12-03 4:50 ` Hui Zhu
2013-12-03 4:54 ` Hui Zhu
2013-12-06 19:29 ` Pedro Alves
2013-12-08 5:19 ` Hui Zhu
2013-12-08 8:34 ` Doug Evans
2013-12-08 14:18 ` Hui Zhu
2013-12-09 19:48 ` Pedro Alves
2013-12-09 21:07 ` Doug Evans
2013-12-10 17:34 ` Pedro Alves
2013-12-10 18:14 ` [PATCH] Eliminate UNSUPPORTED_ERROR Pedro Alves
2013-12-11 16:33 ` Doug Evans
2013-12-11 19:17 ` Pedro Alves
2013-12-12 4:23 ` Doug Evans
2013-12-12 10:23 ` Pedro Alves
2013-12-11 16:40 ` [PATCH] Let gdbserver doesn't tell GDB it support target-side breakpoint conditions and commands if it doesn't support 'Z' packet Doug Evans
2013-12-12 10:55 ` breakpoint.c:insert_bp_location: Constify local. (was: Re: [PATCH] Let gdbserver doesn't tell GDB it support target-side breakpoint conditions and commands if it doesn't support 'Z' packet) Pedro Alves
2013-12-12 12:55 ` [PATCH] Let gdbserver doesn't tell GDB it support target-side breakpoint conditions and commands if it doesn't support 'Z' packet Pedro Alves
2014-01-09 18:36 ` Pedro Alves
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=52654A2C.9010202@redhat.com \
--to=palves@redhat.com \
--cc=gdb-patches@sourceware.org \
--cc=hui_zhu@mentor.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox