Re: [PATCH] Fix PR 15692 -dprintf-insert does not accept double quotes

Hui Zhu
2013-07-03T08:42:24Z

[-- Attachment #1: Type: text/plain, Size: 1013 bytes --]

On Tue, Jul 2, 2013 at 10:44 PM, Yao Qi <yao@codesourcery.com> wrote:
> On 07/02/2013 09:30 PM, Hui Zhu wrote:
>>
>> --- a/gdb/mi/mi-cmd-break.c
>> +++ b/gdb/mi/mi-cmd-break.c
>> @@ -128,6 +128,9 @@ mi_argv_to_format (char **argv, int argc
>> case '\v':
>> obstack_grow (&obstack, "\\v", 2);
>> break;
>> + case '"':
>> + obstack_grow (&obstack, "\\\"", 2);
>> + break;
>> default:
>> if (isprint (argv[0][i]))
>> obstack_grow (&obstack, argv[0] + i, 1);
>
>
> IWBN to add a test case to show that GDB handles double quotes correctly
> after this fix.

Hi Yao,

Thanks for your remind.

Post a new patch about test this issue.

Best,
Hui

>
> --
> Yao (齐尧)

2013-07-03 Hui Zhu <hui@codesourcery.com>

PR gdb/15692
mi/mi-cmd-break.c (mi_argv_to_format): Handle double quotes.

2013-07-03 Hui Zhu <hui@codesourcery.com>

PR gdb/15692
gdb.mi/mi-dprintf.exp: Add double quotes test.

[-- Attachment #2: dprintf-mi-handle-quotes.txt --]
[-- Type: text/plain, Size: 331 bytes --]

--- a/gdb/mi/mi-cmd-break.c
+++ b/gdb/mi/mi-cmd-break.c
@@ -128,6 +128,9 @@ mi_argv_to_format (char **argv, int argc
case '\v':
obstack_grow (&obstack, "\\v", 2);
break;
+ case '"':
+ obstack_grow (&obstack, "\\\"", 2);
+ break;
default:
if (isprint (argv[0][i]))
obstack_grow (&obstack, argv[0] + i, 1);

[-- Attachment #3: dprintf-mi-handle-quotes-test.txt --]
[-- Type: text/plain, Size: 1211 bytes --]

--- a/gdb/testsuite/gdb.mi/mi-dprintf.exp
+++ b/gdb/testsuite/gdb.mi/mi-dprintf.exp
@@ -48,7 +48,7 @@ mi_gdb_test "3-dprintf-insert 29" \
mi_gdb_test "-break-insert main" ".*" "mi insert breakpoint main"
mi_delete_breakpoints

-mi_gdb_test "4-dprintf-insert foo \"At foo entry\\n\"" \
+mi_gdb_test "4-dprintf-insert foo \"\\\"foobarbazqux\\\" At foo entry\\n\"" \
"4\\^done,bkpt=\{number=\".*\",type=\"dprintf\".*func=\"foo\",file=\".*mi-dprintf.c\",fullname=\".*mi-dprintf.c\",line=\".*\".*" "mi insert dprintf foo"

mi_gdb_test "5-dprintf-insert $dp_location1 \"arg=%d, g=%d\\n\" arg g" \
@@ -68,7 +68,7 @@ proc mi_continue_dprintf {args} {
mi_run_cmd
set msg "mi 1st dprintf"
gdb_expect {
- -re ".*At foo entry.*arg=1234, g=1234" {
+ -re ".*foobarbazqux.*At foo entry.*arg=1234, g=1234" {
pass $msg
}
-re ".*$mi_gdb_prompt$" {
@@ -83,7 +83,7 @@ proc mi_continue_dprintf {args} {
set msg "mi 2nd dprintf"
mi_send_resuming_command "exec-continue" "$msg continue"
gdb_expect {
- -re ".*At foo entry.*arg=1235, g=2222" {
+ -re ".*foobarbazqux.*At foo entry.*arg=1235, g=2222" {
pass $msg
}
-re ".*$mi_gdb_prompt$" {