[PATCH] Fix MI dprintf-insert not printing when a location is pending.

Antoine Tremblay antoine.tremblay@ericsson.com
Fri Mar 27 17:13:00 GMT 2015



On 03/27/2015 12:51 PM, Keith Seitz wrote:
> On 03/27/2015 05:36 AM, Antoine Tremblay wrote:
>> diff --git a/gdb/testsuite/gdb.mi/mi-dprintf-pending.exp
>> b/gdb/testsuite/gdb.mi/mi-dprintf-pending.exp
>> new file mode 100644
>> index 0000000..6185329
>> --- /dev/null
>> +++ b/gdb/testsuite/gdb.mi/mi-dprintf-pending.exp
> ...
>
>> +set msg "mi dprintf"
>> +gdb_expect {
>> +    -re ".*~\"hello\"" {
>> +    pass $msg
>> +    }
>> +    -re ".*$mi_gdb_prompt$" {
>> +    fail $msg
>> +    }
>> +    timeout {
>> +    fail $msg
>> +    }
>> +}
>
> Pending a previous query about using mi_gdb_test here, I recommend a
> maintainer approve this patch.
>

Indeed I had missed that you can call it without a command, my mind must 
have skipped that line, thanks :)

However there is still a problem forcing me to use gdb_expect I think, 
namely mi_gdb_test waits for a command prompt like so :

-re "^($string_regex\[\r\n\]+)?($pattern\[\r\n\]+$mi_gdb_prompt\[ \]*)"

However dprintf does mean you will get a prompt printed...

You will get a prompt only when hitting the breakpoint I placed.

This means that if for some reason the breakpoint would not hit, the 
dprintf test would fail, when it's the breakpoint that should fail.

I could remove mi_expect_stop at the end and assume that breakpoint will 
not fail but I think it's not right ? also mi-dprintf.exp is using the 
same mi_run_cmd / gdb_expect / mi_expect_stop ...

What do you think ?








More information about the Gdb-patches mailing list