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

Hui Zhu teawater@gmail.com
Wed Jul 3 12:03:00 GMT 2013


On Wed, Jul 3, 2013 at 6:55 PM, Yao Qi <yao@codesourcery.com> wrote:
> On 07/03/2013 04:41 PM, Hui Zhu wrote:
>>
>> @@ -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" {
>
>
> It is good if we match double quotes before and after foobarbazqux, and get
> rid of ".*" between "foobarbazqux" and "At foo entry", in order to get the
> test more restrictive.  Something like
>
>   ".*\\\\\"foobarbazqux\\\\\" At foo entry.*arg=1234, g=1234"
>
> I have no other comments then.

Update test patch for it.

Thanks,
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.
-------------- next part --------------
--- 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);
-------------- next part --------------
--- 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" \
@@ -65,10 +65,16 @@ proc mi_continue_dprintf {args} {
     with_test_prefix $args {
 	global mi_gdb_prompt
 
+	if { $args == "call" || $args == "fprintf" } {
+	    set foobarbazqux "foobarbazqux.*"
+	} else {
+	    set foobarbazqux "\\\\\"foobarbazqux\\\\\""
+	}
+
 	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 +89,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$" {


More information about the Gdb-patches mailing list