Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Hui Zhu <teawater@gmail.com>
To: Pedro Alves <palves@redhat.com>
Cc: Tom Tromey <tromey@redhat.com>, Eli Zaretskii <eliz@gnu.org>,
	Hui Zhu <hui_zhu@mentor.com>,
		gdb-patches ml <gdb-patches@sourceware.org>,
	Marc Khouzam <marc.khouzam@ericsson.com>
Subject: Re: [PATCH] add -s option to make -break-insert support dprintf
Date: Tue, 16 Apr 2013 09:31:00 -0000	[thread overview]
Message-ID: <CANFwon0WYLZEKWkfHzRgCB8MOPPoCsDvSaCk0SSYXPgonuE5zw@mail.gmail.com> (raw)
In-Reply-To: <516C2549.3060808@redhat.com>

On Tue, Apr 16, 2013 at 12:05 AM, Pedro Alves <palves@redhat.com> wrote:
> On 04/15/2013 02:33 PM, Hui Zhu wrote:
>> On Sat, Apr 13, 2013 at 12:32 AM, Tom Tromey <tromey@redhat.com> wrote:
>>>>>>>> "Hui" == Hui Zhu <teawater@gmail.com> writes:
>>>
>>> Hui> +    [ -s "@var{template},@var{expression}[,@var{expression}@dots{}]" ]
>>> Hui> +    [ @var{location} ]
>>>
>>> Hui> +@item -s "@var{template},@var{expression}[,@var{expression}@dots{}]"
>>> Hui> +Set a dynamic printf breakpoint, described in @ref{Dynamic Printf}.
>>> Hui> +The @var{template} and @var{expression} should be within double
>>> Hui> +quotes and be escaped by being preceded with a backslash.
>>>
>>> MI already defines a quoting approach and allows multiple arguments.
>>> In fact one of its selling points is that it doesn't have to be as
>>> free-form as the CLI -- it can be more predictable for programs to use.
>>>
>>> So, I think the above approach is not that great.
>>> It adds a second layer of parsing to MI, I guess just to work around
>>> internal deficiencies in gdb.
>>>
>>> It seems like you could use positional arguments instead:
>>>
>>> -break-insert -s FORMAT LOCATION ARG ARG ARG ...
>>>
>>>
>>> I don't really understand the part about how the expressions should be
>>> in double quotes.  The test suite doesn't do that:
>>>
>>>     +mi_gdb_test "5-break-insert -s \"\\\"arg=%d, g=%d\\\\n\\\", arg, g\" $dp_location1" \
>>>
>>> I suggest just dropping that text.  I think it probably means that the
>>> argument should be properly quoted for MI, but that is redundant.
>
> I stopped for this as well before while reviewing the patches.  I ended
> up not say anything as after trying things out, I realized that unlike
> with other arguments, which only require quoting if the argument itself
> contains spaces or quotes, etc., in this case, the quotes really are
> necessary (as in, GDB complains if you don't add the quotes).  I didn't
> think about the split arguments idea though.  That's a good question.
>
>>>
>>> Tom
>>
>> This design is because the MI inferior will auto convert the format
>> string of argument of mi command.  But dprintf need format sting keep
>> the original of the format string.  So I use the current format.
>
> I have a bit of trouble understanding exactly what you meant.  :-(  I see
> that with "target-printf" (what dprintf uses as command when the dprintf
> runs on the target/agent side), the whole format string plus the expressions are
> passed down to the target as a single chunk, unanalyzed and unmodified.
> E.g., even 'dprintf foo, "foo" "bar"' or 'agent-printf "foo" "bar"' is
> accepted, and passed down to the target as is (whatever that might mean).
> Is that what you were referring to?  What did you mean by "MI inferior"
> and "auto convert" ?

The MI handle the argument is different with CLI.  For example:
Input -break-insert -s "1\n" to mi.  The mi_cmd_break_insert will get:
Breakpoint 1, mi_cmd_break_insert (command=0x233fb50 "break-insert",
argv=0x233fd30, argc=2)
    at ../../gdb/gdb/mi/mi-cmd-break.c:93
93  char *address = NULL;
(gdb) p argv[0]
$1 = 0x233fd50 "-s"
(gdb) p argv[1]
$2 = 0x233fd70 "1\n"
(gdb) p argv[1][0]
$3 = 49 '1'
(gdb) p argv[1][1]
$4 = 10 '\n'

But the dprint want to get is:
(gdb) p argv[1][1]
$7 = 49 '1'
(gdb) p argv[1][2]
$8 = 92 '\\'
(gdb) p argv[1][3]
$9 = 110 'n'

Thanks,
Hui


>
> --
> Pedro Alves
>


  reply	other threads:[~2013-04-16  1:49 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-03-28 17:44 Hui Zhu
2013-03-28 18:37 ` Eli Zaretskii
2013-03-29 16:12   ` Hui Zhu
2013-03-29 16:13     ` Eli Zaretskii
2013-04-09 23:31     ` Pedro Alves
2013-04-10 19:44       ` Marc Khouzam
2013-04-10 19:45         ` Pedro Alves
2013-04-11  6:15       ` Hui Zhu
2013-04-11 17:47         ` Pedro Alves
2013-04-12 14:56           ` Hui Zhu
2013-04-12 15:22             ` Pedro Alves
2013-04-15 18:59               ` Hui Zhu
2013-04-15 19:41                 ` Pedro Alves
2013-04-16  9:31                   ` Hui Zhu
2013-04-22  1:25                 ` Yao Qi
2013-04-12 16:03             ` Eli Zaretskii
2013-04-13 14:16         ` Tom Tromey
2013-04-15 18:04           ` Hui Zhu
2013-04-15 19:36             ` Pedro Alves
2013-04-16  9:31               ` Hui Zhu [this message]
2013-04-22  0:18                 ` Tom Tromey
2013-04-22  9:07                   ` Hui Zhu
2013-04-25  6:51                     ` Tom Tromey
2013-05-03  5:43                       ` Hui Zhu
2013-05-07 20:50                         ` Tom Tromey
2013-05-10 10:57                           ` Hui Zhu
2013-05-10 15:24                             ` Tom Tromey
2013-05-11  2:38                               ` Hui Zhu
2013-05-11  7:29                                 ` Eli Zaretskii
2013-05-13  3:39                                   ` Hui Zhu
2013-05-13 15:55                                     ` Eli Zaretskii
2013-05-14  4:56                                       ` Hui Zhu
2013-05-20  7:31                                         ` Hui Zhu
2013-05-20 15:44                                           ` Eli Zaretskii
2013-05-21  4:25                                             ` Hui Zhu
2013-05-21  8:10                                               ` [patch] Fix racy FAILs due to "read1" [Re: [PATCH] add -s option to make -break-insert support dprintf] Jan Kratochvil
2013-05-21  9:30                                                 ` Hui Zhu
2013-05-21 15:01                                                   ` [commit] " Jan Kratochvil
2013-05-22  1:05                                                     ` Hui Zhu
2013-05-23 14:03                                               ` [patch] Fix racy FAILs #2 " Jan Kratochvil
2013-05-24 15:37                                                 ` [commit] " Jan Kratochvil
2013-05-27 11:02                                                   ` Hui Zhu
2013-05-13 16:23                                 ` [PATCH] add -s option to make -break-insert support dprintf Tom Tromey

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=CANFwon0WYLZEKWkfHzRgCB8MOPPoCsDvSaCk0SSYXPgonuE5zw@mail.gmail.com \
    --to=teawater@gmail.com \
    --cc=eliz@gnu.org \
    --cc=gdb-patches@sourceware.org \
    --cc=hui_zhu@mentor.com \
    --cc=marc.khouzam@ericsson.com \
    --cc=palves@redhat.com \
    --cc=tromey@redhat.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