-# Copyright (C) 2010 Free Software Foundation, Inc.
+# Copyright (C) 2010-2016 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# Test inferior can stop at its very first instruction, usually "_start".
# Dynamic executables have first instruction in ld.so.
-set testfile break-entry
-if { [prepare_for_testing ${testfile}.exp ${testfile} start.c {additional_flags=-static}] } {
+# If we're using a stub, we'll already be debugging a live program and
+# stopped at the entry point when we connect, and so the runto below
+# will issue a "continue", which always skips any breakpoint at PC.
+# When testing with a native target (or some other target that supports
+# "run"), runto will do a "run", which first creates the process,
+# leaving the PC at the entry point, just like the stub case, but then
+# continues the process with the equivalent of "jump *$PC", which
+# triggers any breakpoint at $PC. The latter is what we want to test.
+
+standard_testfile start.c
+
+if [target_info exists use_gdb_stub] {
+ untested ${testfile}.exp
+ return
+}
+
+if { [prepare_for_testing ${testfile}.exp ${testfile} $srcfile {additional_flags=-static}] } {
return -1
}