aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Kratochvil <jan.kratochvil@redhat.com>2012-03-03 14:21:04 +0000
committerJan Kratochvil <jan.kratochvil@redhat.com>2012-03-03 14:21:04 +0000
commitabf1152ad77baabd40d8c62324e5de922db246a5 (patch)
tree8ea95f72c6ac12da6c411d727550eb2b760b6b38
parenta06715f8dd489123b4850b9e3560addf38a2c720 (diff)
downloadgdb-abf1152ad77baabd40d8c62324e5de922db246a5.zip
gdb-abf1152ad77baabd40d8c62324e5de922db246a5.tar.gz
gdb-abf1152ad77baabd40d8c62324e5de922db246a5.tar.bz2
gdb/
* breakpoint.c (set_condition_evaluation_mode): Set CONDITION_EVALUATION_MODE unconditionally. gdb/testsuite/ Implement testsuite workaround for PR breakpoints/13781. * gdb.cp/mb-templates.exp: New loop with variable $workaround. (set breakpoint condition-evaluation host): New conditional command.
-rw-r--r--gdb/ChangeLog5
-rw-r--r--gdb/breakpoint.c7
-rw-r--r--gdb/testsuite/ChangeLog6
-rw-r--r--gdb/testsuite/gdb.cp/mb-templates.exp37
4 files changed, 39 insertions, 16 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 87b7bda..c74db5b 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2012-03-03 Jan Kratochvil <jan.kratochvil@redhat.com>
+
+ * breakpoint.c (set_condition_evaluation_mode): Set
+ CONDITION_EVALUATION_MODE unconditionally.
+
2012-03-03 Yao Qi <yao@codesourcery.com>
* common/agent.c (agent_look_up_symbols): Add one parameter 'arg'.
diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c
index 3decd92..5388a4e 100644
--- a/gdb/breakpoint.c
+++ b/gdb/breakpoint.c
@@ -761,6 +761,10 @@ set_condition_evaluation_mode (char *args, int from_tty,
new_mode = translate_condition_evaluation_mode (condition_evaluation_mode_1);
old_mode = translate_condition_evaluation_mode (condition_evaluation_mode);
+ /* Flip the switch. Flip it even if OLD_MODE == NEW_MODE as one of the
+ settings was "auto". */
+ condition_evaluation_mode = condition_evaluation_mode_1;
+
/* Only update the mode if the user picked a different one. */
if (new_mode != old_mode)
{
@@ -772,9 +776,6 @@ set_condition_evaluation_mode (char *args, int from_tty,
"target" -> "host": Remove all the conditions from the target.
*/
- /* Flip the switch. */
- condition_evaluation_mode = condition_evaluation_mode_1;
-
if (new_mode == condition_evaluation_target)
{
/* Mark everything modified and synch conditions with the
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index cc39a9a..9df06dd 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,5 +1,11 @@
2012-03-03 Jan Kratochvil <jan.kratochvil@redhat.com>
+ Implement testsuite workaround for PR breakpoints/13781.
+ * gdb.cp/mb-templates.exp: New loop with variable $workaround.
+ (set breakpoint condition-evaluation host): New conditional command.
+
+2012-03-03 Jan Kratochvil <jan.kratochvil@redhat.com>
+
Code cleanup.
* gdb.cp/mb-templates.exp: New variables executable. Use it for
binfile. use clean_restart. Replace gdb_expect by gdb_test_multiple.
diff --git a/gdb/testsuite/gdb.cp/mb-templates.exp b/gdb/testsuite/gdb.cp/mb-templates.exp
index d386c02..e909543 100644
--- a/gdb/testsuite/gdb.cp/mb-templates.exp
+++ b/gdb/testsuite/gdb.cp/mb-templates.exp
@@ -38,24 +38,35 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {deb
return -1
}
-clean_restart ${executable}
+# If GDB crashes try it again workarounding PR breakpoints/13781.
-set bp_location [gdb_get_line_number "set breakpoint here"]
+foreach workaround [list "" " (workaround)"] {
+ clean_restart ${executable}
-# Set a breakpoint with multiple locations
-# and a condition.
+ if {${workaround} != ""} {
+ gdb_test_no_output "set breakpoint condition-evaluation host"
+ }
-gdb_test "break $srcfile:$bp_location if i==1" \
- "Breakpoint.*at.*: $srcfile:$bp_location. \\(2 locations\\).*" \
- "initial condition: set breakpoint"
+ set bp_location [gdb_get_line_number "set breakpoint here"]
-gdb_run_cmd
+ # Set a breakpoint with multiple locations
+ # and a condition.
-set test "initial condition: run to breakpoint"
-gdb_test_multiple "" $test {
- -re "Breakpoint \[0-9\]+,.*foo<int> \\(i=1\\).*$gdb_prompt $" {
- pass $test
- break
+ gdb_test "break $srcfile:$bp_location if i==1" \
+ "Breakpoint.*at.*: $srcfile:$bp_location. \\(2 locations\\).*" \
+ "initial condition: set breakpoint$workaround"
+
+ gdb_run_cmd
+
+ if {${workaround} == "" && [is_remote target]} {
+ setup_kfail breakpoints/13781 "*-*-*"
+ }
+ set test "initial condition: run to breakpoint$workaround"
+ gdb_test_multiple "" $test {
+ -re "Breakpoint \[0-9\]+,.*foo<int> \\(i=1\\).*$gdb_prompt $" {
+ pass $test
+ break
+ }
}
}