This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [RFA] Allow use of breakpoint commands inside `if' or `while'
- From: Eli Zaretskii <eliz at gnu dot org>
- To: gdb-patches at sources dot redhat dot com
- Date: Sat, 13 Jan 2007 19:21:19 +0200
- Subject: Re: [RFA] Allow use of breakpoint commands inside `if' or `while'
- References: <u7j94rxoa.fsf@gnu.org> <usleehmwi.fsf@gnu.org>
- Reply-to: Eli Zaretskii <eliz at gnu dot org>
> Date: Sat, 13 Jan 2007 19:11:41 +0200
> From: Eli Zaretskii <eliz@gnu.org>
>
> (I will post an initial attempt to add a test for this in a moment.)
Here it is. It is admittedly inelegant; in particular, the
diagnostics for a GDB that fails the test is not very smart, and one
of the two tests isn't counted in the sum of failed tests, although it
does fail. Hopefully, someone more fluent with Expect will be able to
improve on the test (I think Daniel offered help back when I first
reported this).
--- testsuite/gdb.base/commands.exp.~0 2007-01-09 12:59:09.000000000 -0500
+++ testsuite/gdb.base/commands.exp 2007-01-13 12:00:18.912682122 -0500
@@ -618,6 +618,23 @@
file delete file3
}
+proc breakpoint_commands_in_if_command_test {} {
+ if [target_info exists noargs] {
+ verbose "Skipping breakpoint_commands_in_if_command_test because of noargs."
+ return
+ }
+
+ gdb_test "set \$tem = 1" "" "set \$tem in breakpoint_commands_in_if_command_test"
+ delete_breakpoints
+ gdb_test "if \$tem == 2\nbreak main\nelse\nbreak factorial\ncommands\nsilent\nset \$tem = 3\n\continue\nend\nend" \
+ "Breakpoint \[0-9\]+ at .*: file .*/run.c, line \[0-9\]+\." \
+ "breakpoint in else condition"
+ delete_breakpoints
+ gdb_test "if \$tem == 1\nbreak main\nelse\nbreak factorial\ncommands\nsilent\nset \$tem = 3\n\continue\nend\nend" \
+ "Breakpoint \[0-9\]+ at .*: file .*/run.c, line \[0-9\]+\." \
+ "breakpoint in if condition"
+}
+
gdbvar_simple_if_test
gdbvar_simple_while_test
gdbvar_complex_if_while_test
@@ -635,3 +652,4 @@
temporary_breakpoint_commands
stray_arg0_test
recursive_source_test
+breakpoint_commands_in_if_command_test