gdb/testsuite/

* lib/gdb.exp (can_single_step_to_signal_handler): New.
	* gdb.base/kill-after-signal.exp: Call it.  Skip if target doesn't
	support single step to signal handler.
This commit is contained in:
Yao Qi 2011-09-18 02:36:27 +00:00
parent f5b1e24db0
commit ab254057b8
3 changed files with 28 additions and 0 deletions

View File

@ -1,3 +1,9 @@
2011-09-17 Yao Qi <yao@codesourcery.com>
* lib/gdb.exp (can_single_step_to_signal_handler): New.
* gdb.base/kill-after-signal.exp: Call it. Skip if target doesn't
support single step to signal handler.
2011-09-17 Yao Qi <yao@codesourcery.com>
* gdb.base/disp-step-fork.c: New.

View File

@ -14,6 +14,12 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
set testfile "kill-after-signal"
if { ![can_single_step_to_signal_handler] } {
untested ${testfile}.exp
return
}
if [prepare_for_testing ${testfile}.exp ${testfile}] {
return -1
}

View File

@ -1527,6 +1527,22 @@ proc support_complex_tests {} {
return $support_complex_tests_saved
}
# Return 1 if target hardware or OS supports single stepping to signal
# handler, otherwise, return 0.
proc can_single_step_to_signal_handler {} {
# Targets don't have hardware single step. On these targets, when
# a signal is delivered during software single step, gdb is unable
# to determine the next instruction addresses, because start of signal
# handler is one of them.
if { [istarget "arm*-*-*"] || [istarget "mips*-*-*"] } {
return 0
}
return 1
}
# Return 1 if target is ILP32.
# This cannot be decided simply from looking at the target string,
# as it might depend on externally passed compiler options like -m64.