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
>
next prev parent 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