2011-05-30 Yao Qi <yao@codesourcery.com>
- * gdb.base/varargs.c (find_max_float_real): New.
- (find_max_double_real, find_max_long_double_real): New.
- * gdb.base/varargs.exp: Call these new added functions.
+ * gdb.base/callfuncs.exp (rerun_and_prepare): New.
+ Call rerun_and_prepare for each test to isolate effects.
+
+2011-05-30 Yao Qi <yao@codesourcery.com>
+
+ * gdb.base/varargs.c (find_max_float_real): New.
+ (find_max_double_real, find_max_long_double_real): New.
+ * gdb.base/varargs.exp: Call these new added functions.
* lib/gdb.exp (setup_kfail_for_target): New.
2011-05-30 Yao Qi <yao@codesourcery.com>
return $all_registers_lines
}
+proc rerun_and_prepare {} {
+ global hp_aCC_compiler
+
+ if { $hp_aCC_compiler } {
+ # Do not set language explicitly to 'C'. This will cause aCC
+ # tests to fail because promotion rules are different. Just let
+ # the language be set to the default.
+
+ if { ![runto_main] } {
+ gdb_suppress_tests;
+ }
+
+ # However, turn off overload-resolution for aCC. Having it on causes
+ # a lot of failures.
+
+ gdb_test_no_output "set overload-resolution 0"
+ } else {
+ gdb_test_no_output "set language c"
+ if { ![runto_main] } {
+ gdb_suppress_tests;
+ }
+ }
+
+ get_debug_format
+
+ # Make sure that malloc gets called and that the floating point unit
+ # is initialized via a call to t_double_values.
+ gdb_test "next" "t_double_values\\(double_val1, double_val2\\);.*" \
+ "next to t_double_values"
+ gdb_test "next" "t_structs_c\\(struct_val1\\);.*" \
+ "next to t_structs_c"
+}
+
# Start with a fresh gdb.
gdb_test_no_output "set print address off"
gdb_test_no_output "set width 0"
-if { $hp_aCC_compiler } {
- # Do not set language explicitly to 'C'. This will cause aCC
- # tests to fail because promotion rules are different. Just let
- # the language be set to the default.
-
- if { ![runto_main] } {
- gdb_suppress_tests;
- }
-
- # However, turn off overload-resolution for aCC. Having it on causes
- # a lot of failures.
-
- gdb_test_no_output "set overload-resolution 0"
-} else {
- gdb_test_no_output "set language c"
- if { ![runto_main] } {
- gdb_suppress_tests;
- }
-}
-
-get_debug_format
-
-# Make sure that malloc gets called and that the floating point unit
-# is initialized via a call to t_double_values.
-gdb_test "next" "t_double_values\\(double_val1, double_val2\\);.*" \
- "next to t_double_values"
-gdb_test "next" "t_structs_c\\(struct_val1\\);.*" \
- "next to t_structs_c"
+rerun_and_prepare
# Save all register contents.
set old_reg_content [fetch_all_registers "retrieve original register contents"]
fail "gdb function calls preserve register contents"
}
+rerun_and_prepare
+# Save all register contents.
+set old_reg_content [fetch_all_registers "retrieve original register contents"]
+
# Set breakpoint at a function we will call from gdb.
gdb_breakpoint add
}
}
+rerun_and_prepare
+# Set breakpoint at a function we will call from gdb.
+gdb_breakpoint add
+# Save all register contents.
+set old_reg_content [fetch_all_registers "retrieve original register contents"]
+
# Call function (causing a breakpoint hit in the call dummy) and do a finish,
# make sure we are back at main and still have the same register contents.
gdb_test "print add(4,5)" "The program being debugged stopped while.*" \
}
}
+rerun_and_prepare
+# Set breakpoint at a function we will call from gdb.
+gdb_breakpoint add
+# Save all register contents.
+set old_reg_content [fetch_all_registers "retrieve original register contents"]
+
# Call function (causing a breakpoint hit in the call dummy) and do a return
# with a value, make sure we are back at main with the same register contents.
gdb_test "print add(4,5)" "The program being debugged stopped while.*" \
}
}
+rerun_and_prepare
+# Set breakpoint at a function we will call from gdb.
+gdb_breakpoint add
+set old_reg_content [fetch_all_registers "retrieve original register contents"]
+
# Call function (causing a breakpoint hit in the call dummy), and
# call another function from the call dummy frame (thereby setting up
# several nested call dummy frames). Test that backtrace and finish