gdb
* infrun.c (print_exited_reason): Include inferior id and pid in message. gdb/testsuite * lib/opencl.exp (skip_opencl_tests): Update for exit message change. * lib/mi-support.exp (mi_gdb_test): Update for exit message change. * lib/gdb.exp (gdb_test_multiple): Update comment. Update for exit message change. (skip_altivec_tests): Update for exit message change. (skip_vsx_tests): Likewise. (gdb_continue_to_end): Likewise. Add 'command' argument. * lib/cell.exp (skip_cell_tests): Update for exit message change. * gdb.threads/tls.exp: Update for exit message change. * gdb.threads/thread-unwindonsignal.exp: Use gdb_continue_to_end. * gdb.threads/step.exp (step_it): Update for exit message change. (continue_all): Likewise. * gdb.threads/print-threads.exp (test_all_threads): Update for exit message change. * gdb.threads/interrupted-hand-call.exp: Use gdb_continue_to_end. * gdb.threads/execl.exp: Use gdb_continue_to_end. * gdb.python/py-prettyprint.exp (run_lang_tests): Use gdb_continue_to_end. * gdb.hp/gdb.objdbg/objdbg02.exp: Use gdb_continue_to_end. * gdb.hp/gdb.objdbg/objdbg01.exp: Use gdb_continue_to_end. * gdb.hp/gdb.defects/solib-d.exp: Update for exit message change. * gdb.cp/method.exp: Update for exit message change. * gdb.cp/mb-templates.exp: Update for exit message change. * gdb.cp/mb-inline.exp: Use gdb_continue_to_end. * gdb.cp/annota3.exp: Update for exit message change. * gdb.cp/annota2.exp: Update for exit message change. * gdb.cell/fork.exp: Use gdb_continue_to_end. * gdb.base/term.exp: Update for exit message change. * gdb.base/step-test.exp (test_i): Update for exit message change. * gdb.base/sigstep.exp (advance): Update for exit message change. (advancei): Likewise. * gdb.base/siginfo.exp: Update for exit message change. * gdb.base/shlib-call.exp: Use gdb_continue_to_end. * gdb.base/reread.exp: Use gdb_continue_to_end. * gdb.base/langs.exp: Use gdb_continue_to_end. * gdb.base/interrupt.exp: Update for exit message change. * gdb.base/gdb1555.exp: Update for exit message change. * gdb.base/exe-lock.exp: Use gdb_continue_to_end. * gdb.base/ending-run.exp: Update for exit message change. * gdb.base/chng-syms.exp: Update for exit message change. * gdb.base/checkpoint.exp: Update for exit message change. * gdb.base/catch-syscall.exp (check_for_program_end): Use gdb_continue_to_end. (test_catch_syscall_with_wrong_args): Likewise. * gdb.base/call-signal-resume.exp: Use gdb_continue_to_end. * gdb.base/break-interp.exp (test_ld): Update for exit message change. * gdb.base/bang.exp: Update for exit message change. * gdb.base/attach.exp (do_attach_tests): Use gdb_continue_to_end. (do_call_attach_tests): Likewise. * gdb.base/a2-run.exp: Update for exit message change. * gdb.arch/ppc-dfp.exp: Update for exit message change. * gdb.ada/tasks.exp: Use gdb_continue_to_end. * gdb.ada/catch_ex.exp: Use gdb_continue_to_end.
This commit is contained in:
parent
aeaec16283
commit
fda326dd1d
|
@ -1,3 +1,8 @@
|
|||
2011-03-07 Tom Tromey <tromey@redhat.com>
|
||||
|
||||
* infrun.c (print_exited_reason): Include inferior id and pid in
|
||||
message.
|
||||
|
||||
2011-03-07 Tom Tromey <tromey@redhat.com>
|
||||
|
||||
* target.h (struct target_ops) <to_has_execution>: Add ptid_t
|
||||
|
|
17
gdb/infrun.c
17
gdb/infrun.c
|
@ -5487,22 +5487,33 @@ print_signal_exited_reason (enum target_signal siggnal)
|
|||
static void
|
||||
print_exited_reason (int exitstatus)
|
||||
{
|
||||
struct inferior *inf = current_inferior ();
|
||||
const char *pidstr = target_pid_to_str (pid_to_ptid (inf->pid));
|
||||
|
||||
annotate_exited (exitstatus);
|
||||
if (exitstatus)
|
||||
{
|
||||
if (ui_out_is_mi_like_p (uiout))
|
||||
ui_out_field_string (uiout, "reason",
|
||||
async_reason_lookup (EXEC_ASYNC_EXITED));
|
||||
ui_out_text (uiout, "\nProgram exited with code ");
|
||||
ui_out_text (uiout, "[Inferior ");
|
||||
ui_out_text (uiout, plongest (inf->num));
|
||||
ui_out_text (uiout, " (");
|
||||
ui_out_text (uiout, pidstr);
|
||||
ui_out_text (uiout, ") exited with code ");
|
||||
ui_out_field_fmt (uiout, "exit-code", "0%o", (unsigned int) exitstatus);
|
||||
ui_out_text (uiout, ".\n");
|
||||
ui_out_text (uiout, "]\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
if (ui_out_is_mi_like_p (uiout))
|
||||
ui_out_field_string
|
||||
(uiout, "reason", async_reason_lookup (EXEC_ASYNC_EXITED_NORMALLY));
|
||||
ui_out_text (uiout, "\nProgram exited normally.\n");
|
||||
ui_out_text (uiout, "[Inferior ");
|
||||
ui_out_text (uiout, plongest (inf->num));
|
||||
ui_out_text (uiout, " (");
|
||||
ui_out_text (uiout, pidstr);
|
||||
ui_out_text (uiout, ") exited normally]\n");
|
||||
}
|
||||
/* Support the --return-child-result option. */
|
||||
return_child_result_value = exitstatus;
|
||||
|
|
|
@ -1,3 +1,64 @@
|
|||
2011-03-07 Tom Tromey <tromey@redhat.com>
|
||||
|
||||
* lib/opencl.exp (skip_opencl_tests): Update for exit message
|
||||
change.
|
||||
* lib/mi-support.exp (mi_gdb_test): Update for exit message
|
||||
change.
|
||||
* lib/gdb.exp (gdb_test_multiple): Update comment. Update for
|
||||
exit message change.
|
||||
(skip_altivec_tests): Update for exit message change.
|
||||
(skip_vsx_tests): Likewise.
|
||||
(gdb_continue_to_end): Likewise. Add 'command' argument.
|
||||
* lib/cell.exp (skip_cell_tests): Update for exit message change.
|
||||
* gdb.threads/tls.exp: Update for exit message change.
|
||||
* gdb.threads/thread-unwindonsignal.exp: Use
|
||||
gdb_continue_to_end.
|
||||
* gdb.threads/step.exp (step_it): Update for exit message change.
|
||||
(continue_all): Likewise.
|
||||
* gdb.threads/print-threads.exp (test_all_threads): Update for
|
||||
exit message change.
|
||||
* gdb.threads/interrupted-hand-call.exp: Use
|
||||
gdb_continue_to_end.
|
||||
* gdb.threads/execl.exp: Use gdb_continue_to_end.
|
||||
* gdb.python/py-prettyprint.exp (run_lang_tests): Use
|
||||
gdb_continue_to_end.
|
||||
* gdb.hp/gdb.objdbg/objdbg02.exp: Use gdb_continue_to_end.
|
||||
* gdb.hp/gdb.objdbg/objdbg01.exp: Use gdb_continue_to_end.
|
||||
* gdb.hp/gdb.defects/solib-d.exp: Update for exit message change.
|
||||
* gdb.cp/method.exp: Update for exit message change.
|
||||
* gdb.cp/mb-templates.exp: Update for exit message change.
|
||||
* gdb.cp/mb-inline.exp: Use gdb_continue_to_end.
|
||||
* gdb.cp/annota3.exp: Update for exit message change.
|
||||
* gdb.cp/annota2.exp: Update for exit message change.
|
||||
* gdb.cell/fork.exp: Use gdb_continue_to_end.
|
||||
* gdb.base/term.exp: Update for exit message change.
|
||||
* gdb.base/step-test.exp (test_i): Update for exit message change.
|
||||
* gdb.base/sigstep.exp (advance): Update for exit message change.
|
||||
(advancei): Likewise.
|
||||
* gdb.base/siginfo.exp: Update for exit message change.
|
||||
* gdb.base/shlib-call.exp: Use gdb_continue_to_end.
|
||||
* gdb.base/reread.exp: Use gdb_continue_to_end.
|
||||
* gdb.base/langs.exp: Use gdb_continue_to_end.
|
||||
* gdb.base/interrupt.exp: Update for exit message change.
|
||||
* gdb.base/gdb1555.exp: Update for exit message change.
|
||||
* gdb.base/exe-lock.exp: Use gdb_continue_to_end.
|
||||
* gdb.base/ending-run.exp: Update for exit message change.
|
||||
* gdb.base/chng-syms.exp: Update for exit message change.
|
||||
* gdb.base/checkpoint.exp: Update for exit message change.
|
||||
* gdb.base/catch-syscall.exp (check_for_program_end): Use
|
||||
gdb_continue_to_end.
|
||||
(test_catch_syscall_with_wrong_args): Likewise.
|
||||
* gdb.base/call-signal-resume.exp: Use gdb_continue_to_end.
|
||||
* gdb.base/break-interp.exp (test_ld): Update for exit message
|
||||
change.
|
||||
* gdb.base/bang.exp: Update for exit message change.
|
||||
* gdb.base/attach.exp (do_attach_tests): Use gdb_continue_to_end.
|
||||
(do_call_attach_tests): Likewise.
|
||||
* gdb.base/a2-run.exp: Update for exit message change.
|
||||
* gdb.arch/ppc-dfp.exp: Update for exit message change.
|
||||
* gdb.ada/tasks.exp: Use gdb_continue_to_end.
|
||||
* gdb.ada/catch_ex.exp: Use gdb_continue_to_end.
|
||||
|
||||
2011-03-05 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||
|
||||
* gdb.base/help.exp (help thread find): Fix one forgotten quote.
|
||||
|
|
|
@ -141,8 +141,6 @@ gdb_test "continue" \
|
|||
"Continuing\.$eol$catchpoint_msg$eol.*SPOT4" \
|
||||
"continuing to unhandled exception"
|
||||
|
||||
gdb_test "continue" \
|
||||
"Continuing\..*Program exited.*" \
|
||||
"continuing to program completion"
|
||||
gdb_continue_to_end
|
||||
|
||||
|
||||
|
|
|
@ -70,7 +70,5 @@ gdb_test "info tasks" \
|
|||
# Now, resume the execution and make sure that GDB does not stop when
|
||||
# task 4 hits the breakpoint. Continuing thus results in our program
|
||||
# running to completion.
|
||||
gdb_test "continue" \
|
||||
".*Program exited normally\..*" \
|
||||
"continue until end of program"
|
||||
gdb_continue_to_end
|
||||
|
||||
|
|
|
@ -59,7 +59,7 @@ gdb_run_cmd
|
|||
# When the prompt comes back we'll be at the Set DFP rounding mode breakpoint.
|
||||
# Unless the program bails out after checking AT_HWCAP.
|
||||
gdb_expect {
|
||||
-re "Program exited with code 01.\[\r\n\]+$gdb_prompt $" {
|
||||
-re "$inferior_exited_re with code 01.\[\r\n\]+$gdb_prompt $" {
|
||||
unsupported "This machine doesn't support Decimal Floating Point."
|
||||
return -1
|
||||
}
|
||||
|
|
|
@ -42,7 +42,7 @@ if [istarget "*-*-vxworks*"] then {
|
|||
set timeout 120
|
||||
verbose "Timeout is now $timeout seconds" 2
|
||||
gdb_expect {
|
||||
"Program exited normally" {
|
||||
"$inferior_exited_re normally" {
|
||||
unresolved "run \"$testfile\" with no args"
|
||||
}
|
||||
-re "usage: factorial <number>" {
|
||||
|
@ -57,19 +57,19 @@ if [istarget "*-*-vxworks*"] then {
|
|||
gdb_expect -re "$gdb_prompt $" {}
|
||||
} else {
|
||||
gdb_expect {
|
||||
-re ".*usage: factorial <number>.*Program exited with code 01\.\r\n$gdb_prompt $" {
|
||||
-re ".*usage: factorial <number>.*$inferior_exited_re with code 01.\r\n$gdb_prompt $" {
|
||||
pass "run \"$testfile\" with no args"
|
||||
pass "no spurious messages at program exit"
|
||||
}
|
||||
-re ".*usage: factorial <number>.*Program exited with code 01.*$gdb_prompt $" {
|
||||
-re ".*usage: factorial <number>.*$inferior_exited_re with code 01.*$gdb_prompt $" {
|
||||
pass "run \"$testfile\" with no args"
|
||||
fail "no spurious messages at program exit"
|
||||
}
|
||||
-re ".*usage: factorial <number>.* EXIT code 1.*Program exited normally\.\r\n$gdb_prompt $" {
|
||||
-re ".*usage: factorial <number>.* EXIT code 1.*$inferior_exited_re normally.\r\n$gdb_prompt $" {
|
||||
pass "run \"$testfile\" with no args (exit wrapper)"
|
||||
pass "no spurious messages at program exit"
|
||||
}
|
||||
-re ".*usage: factorial <number>.* EXIT code 1.*Program exited normally.*$gdb_prompt $" {
|
||||
-re ".*usage: factorial <number>.* EXIT code 1.*$inferior_exited_re normally.*$gdb_prompt $" {
|
||||
pass "run \"$testfile\" with no args (exit wrapper)"
|
||||
fail "no spurious messages at program exit"
|
||||
}
|
||||
|
@ -97,7 +97,7 @@ if [istarget "*-*-vxworks*"] then {
|
|||
set timeout 120
|
||||
verbose "Timeout is now $timeout seconds" 2
|
||||
gdb_expect {
|
||||
"Program exited normally" {
|
||||
"$inferior_exited_re normally" {
|
||||
unresolved "run \"$testfile\" with arg"
|
||||
}
|
||||
"120" {
|
||||
|
@ -129,7 +129,7 @@ if [istarget "*-*-vxworks*"] then {
|
|||
set timeout 120
|
||||
verbose "Timeout is now $timeout seconds" 2
|
||||
gdb_expect {
|
||||
"Program exited normally" {
|
||||
"$inferior_exited_re normally" {
|
||||
unresolved "run \"$testfile\" again with same args"
|
||||
}
|
||||
"120" { pass "run \"$testfile\" again with same args" }
|
||||
|
@ -161,7 +161,7 @@ if [istarget "*-*-vxworks*"] then {
|
|||
set timeout 120
|
||||
verbose "Timeout is now $timeout seconds" 2
|
||||
gdb_expect {
|
||||
"Program exited normally" {
|
||||
"$inferior_exited_re normally" {
|
||||
unresolved "run after setting args to nil"
|
||||
}
|
||||
"usage: factorial <number>" {
|
||||
|
@ -202,7 +202,7 @@ if [istarget "*-*-vxworks*"] then {
|
|||
set timeout 120
|
||||
verbose "Timeout is now $timeout seconds" 2
|
||||
gdb_expect {
|
||||
"Program exited normally" {
|
||||
"$inferior_exited_re normally" {
|
||||
unresolved "run \"$testfile\" again after setting args"
|
||||
}
|
||||
"720" {
|
||||
|
|
|
@ -258,7 +258,7 @@ proc do_attach_tests {} {
|
|||
|
||||
# Allow the test process to exit, to cleanup after ourselves.
|
||||
|
||||
gdb_test "continue" "Program exited normally." "after attach2, exit"
|
||||
gdb_continue_to_end "after attach2, exit"
|
||||
|
||||
# Make sure we don't leave a process around to confuse
|
||||
# the next test run (and prevent the compile by keeping
|
||||
|
@ -365,7 +365,7 @@ proc do_call_attach_tests {} {
|
|||
# Get rid of the process
|
||||
|
||||
gdb_test "p should_exit = 1"
|
||||
gdb_test "c" "Program exited normally."
|
||||
gdb_continue_to_end
|
||||
|
||||
# Be paranoid
|
||||
|
||||
|
|
|
@ -39,7 +39,7 @@ gdb_load ${binfile}
|
|||
|
||||
gdb_run_cmd
|
||||
gdb_expect {
|
||||
-re ".*Program exited normally.*$gdb_prompt $" {
|
||||
-re ".*$inferior_exited_re normally.*$gdb_prompt $" {
|
||||
pass "run program"
|
||||
}
|
||||
timeout {
|
||||
|
|
|
@ -365,7 +365,7 @@ proc test_attach {file displacement {relink_args ""}} {
|
|||
}
|
||||
|
||||
proc test_ld {file ifmain trynosym displacement} {
|
||||
global srcdir subdir gdb_prompt expect_out
|
||||
global srcdir subdir gdb_prompt expect_out inferior_exited_re
|
||||
|
||||
# First test normal `file'-command loaded $FILE with symbols.
|
||||
|
||||
|
@ -494,7 +494,7 @@ proc test_ld {file ifmain trynosym displacement} {
|
|||
}
|
||||
exp_continue
|
||||
}
|
||||
-re "Program exited (normally|with code \[0-9\]+)\\.\r\n$gdb_prompt $" {
|
||||
-re "$inferior_exited_re (normally|with code \[0-9\]+).\r\n$gdb_prompt $" {
|
||||
# Do not check the binary filename as it may be truncated.
|
||||
pass $test
|
||||
}
|
||||
|
|
|
@ -146,7 +146,6 @@ gdb_test "continue" "Breakpoint \[0-9\]*, handle_signal.*" \
|
|||
|
||||
# Continue one last time, the program should exit normally.
|
||||
|
||||
gdb_test "continue" "Program exited normally." \
|
||||
"continue to program exit"
|
||||
gdb_continue_to_end
|
||||
|
||||
return 0
|
||||
|
|
|
@ -166,8 +166,7 @@ proc check_for_program_end {} {
|
|||
# Deleting the catchpoints
|
||||
delete_breakpoints
|
||||
|
||||
set thistest "successful program end"
|
||||
gdb_test "continue" "Program exited normally.*" $thistest
|
||||
gdb_continue_to_end
|
||||
|
||||
}
|
||||
|
||||
|
@ -231,7 +230,7 @@ proc test_catch_syscall_with_wrong_args {} {
|
|||
# If it doesn't, everything is right (since we don't have
|
||||
# a syscall named "mlock" in it). Otherwise, this is a failure.
|
||||
set thistest "catch syscall with unused syscall ($syscall_name)"
|
||||
gdb_test "continue" "Program exited normally.*" $thistest
|
||||
gdb_continue_to_end $thistest
|
||||
}
|
||||
|
||||
proc test_catch_syscall_restarting_inferior {} {
|
||||
|
|
|
@ -277,23 +277,23 @@ gdb_test "print ftell (out) > 100000" " = 1.*" "outfile still open 10"
|
|||
|
||||
delete_breakpoints
|
||||
gdb_test "continue" \
|
||||
"Deleting copy.*Program exited normally.*Switching to.*" \
|
||||
"Deleting copy.*$inferior_exited_re normally.*Switching to.*" \
|
||||
"Exit, dropped into next fork one"
|
||||
|
||||
gdb_test "continue" \
|
||||
"Deleting copy.*Program exited normally.*Switching to.*" \
|
||||
"Deleting copy.*$inferior_exited_re normally.*Switching to.*" \
|
||||
"Exit, dropped into next fork two"
|
||||
|
||||
gdb_test "continue" \
|
||||
"Deleting copy.*Program exited normally.*Switching to.*" \
|
||||
"Deleting copy.*$inferior_exited_re normally.*Switching to.*" \
|
||||
"Exit, dropped into next fork three"
|
||||
|
||||
gdb_test "continue" \
|
||||
"Deleting copy.*Program exited normally.*Switching to.*" \
|
||||
"Deleting copy.*$inferior_exited_re normally.*Switching to.*" \
|
||||
"Exit, dropped into next fork four"
|
||||
|
||||
gdb_test "continue" \
|
||||
"Deleting copy.*Program exited normally.*Switching to.*" \
|
||||
"Deleting copy.*$inferior_exited_re normally.*Switching to.*" \
|
||||
"Exit, dropped into next fork five"
|
||||
|
||||
#
|
||||
|
|
|
@ -100,7 +100,7 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {deb
|
|||
|
||||
gdb_run_cmd
|
||||
gdb_expect {
|
||||
-re ".*Program exited normally.*$gdb_prompt $" {
|
||||
-re ".*$inferior_exited_re normally.*$gdb_prompt $" {
|
||||
pass "running with invalidated bpt condition after executable changes"
|
||||
}
|
||||
-re ".*Breakpoint .*,( 0x.* in)? (\[^ \]*)exit .*$gdb_prompt $" {
|
||||
|
|
|
@ -146,7 +146,7 @@ gdb_test_multiple "next" "step out of main" {
|
|||
# This is what happens on mingw32ce.
|
||||
pass "step out of main"
|
||||
}
|
||||
-re ".*Program exited normally.*$gdb_prompt $" {
|
||||
-re ".*$inferior_exited_re normally.*$gdb_prompt $" {
|
||||
# This is what happens on Linux i86 (and I would expect others)
|
||||
set program_exited 1
|
||||
pass "step out of main"
|
||||
|
@ -209,21 +209,21 @@ if {! [target_info exists use_gdb_stub]
|
|||
global program_exited;
|
||||
if {[eval expr $program_exited == 0]} {
|
||||
gdb_test_multiple "n" "step to end of run" {
|
||||
-re "Program exited normally.*$gdb_prompt $" {
|
||||
-re "$inferior_exited_re normally.*$gdb_prompt $" {
|
||||
# If we actually have debug info for the start function,
|
||||
# then we won't get the "Single-stepping until function
|
||||
# exit" message.
|
||||
pass "step to end of run"
|
||||
set program_exited_normally 1
|
||||
}
|
||||
-re "Single.*EXIT code 0\r\n.*Program exited normally.*$gdb_prompt $" {
|
||||
-re "Single.*EXIT code 0\r\n.*$inferior_exited_re normally.*$gdb_prompt $" {
|
||||
pass "step to end of run (status wrapper)"
|
||||
set program_exited_normally 1
|
||||
}
|
||||
-re "Single.*EXIT code 0\r\n.*$gdb_prompt $" {
|
||||
pass "step to end of run (status wrapper)"
|
||||
}
|
||||
-re ".*Single.*Program exited.*$gdb_prompt $" {
|
||||
-re ".*Single.*$inferior_exited_re.*$gdb_prompt $" {
|
||||
pass "step to end of run"
|
||||
set program_exited_normally 1
|
||||
}
|
||||
|
|
|
@ -50,9 +50,7 @@ if ![runto_main] then {
|
|||
continue
|
||||
}
|
||||
|
||||
gdb_test "continue" \
|
||||
".*Program exited normally\\." \
|
||||
"continue until program exits"
|
||||
gdb_continue_to_end
|
||||
|
||||
# Try deleting the executable file, now that the program has exited,
|
||||
# and make sure that the deletion worked by verifying that the exe
|
||||
|
|
|
@ -77,7 +77,7 @@ gdb_test_multiple "n" $name \
|
|||
-re "\[0-9\]+.*return a;.*$gdb_prompt $" {
|
||||
pass $name
|
||||
}
|
||||
-re "Single stepping until exit from function .*, \r\nwhich has no line number information.\r\n\r\nProgram exited normally.*$gdb_prompt $" {
|
||||
-re "Single stepping until exit from function .*, \r\nwhich has no line number information.\r\n\r\n$inferior_exited_re normally.*$gdb_prompt $" {
|
||||
kfail "gdb/1555" $name
|
||||
}
|
||||
}
|
||||
|
|
|
@ -201,7 +201,7 @@ if ![file exists $binfile] then {
|
|||
|
||||
send_gdb "\004"
|
||||
gdb_expect {
|
||||
-re "end of file.*Program exited normally.*$gdb_prompt $" {
|
||||
-re "end of file.*$inferior_exited_re normally.*$gdb_prompt $" {
|
||||
pass "send end of file"
|
||||
}
|
||||
-re "$gdb_prompt $" { fail "send end of file" }
|
||||
|
|
|
@ -142,13 +142,7 @@ if [runto csub] then {
|
|||
|
||||
if [target_info exists gdb,noresults] { return }
|
||||
|
||||
if [target_info exists use_gdb_stub] {
|
||||
gdb_breakpoint "exit"
|
||||
gdb_test "cont" "Breakpoint .*exit.*" "continue to exit in langs.exp"
|
||||
} else {
|
||||
gdb_test "cont" "Program exited normally\\..*" \
|
||||
"continue to exit in langs.exp"
|
||||
}
|
||||
gdb_continue_to_end "langs.exp"
|
||||
}
|
||||
|
||||
gdb_exit
|
||||
|
|
|
@ -149,8 +149,7 @@ if [is_remote target] {
|
|||
|
||||
# This time, let the program run to completion. If GDB checks the
|
||||
# executable file's timestamp now, it won't notice any change.
|
||||
gdb_test "continue" ".*Program exited.*" \
|
||||
"second pass: continue to completion"
|
||||
gdb_continue_to_end "second pass"
|
||||
|
||||
# Now move the newer executable into place, and re-run. GDB
|
||||
# should still notice that the executable file has changed,
|
||||
|
|
|
@ -182,12 +182,12 @@ if ![is_remote target] {
|
|||
gdb_test "run" "Starting program:.*Breakpoint .,.*" \
|
||||
"run to bp in shared library"
|
||||
|
||||
gdb_test "cont" ".*Program exited normally..*"
|
||||
gdb_continue_to_end
|
||||
|
||||
gdb_test "run" "Starting program:.*Breakpoint .,.*" \
|
||||
"re-run to bp in shared library (PR's 16495, 18213)"
|
||||
|
||||
gdb_test "cont" ".*Program exited normally..*"
|
||||
gdb_continue_to_end
|
||||
}
|
||||
|
||||
return 0
|
||||
|
|
|
@ -83,7 +83,7 @@ gdb_test_multiple "step" "${test}" {
|
|||
send_gdb "step\n"
|
||||
exp_continue
|
||||
}
|
||||
-re "Program exited normally.*${gdb_prompt} $" {
|
||||
-re "$inferior_exited_re normally.*${gdb_prompt} $" {
|
||||
kfail gdb/1613 "$test (program exited)"
|
||||
}
|
||||
-re "(while ..done|return 0).*${gdb_prompt} $" {
|
||||
|
|
|
@ -68,7 +68,7 @@ gdb_test_sequence "bt" "backtrace for nexti" {
|
|||
}
|
||||
|
||||
proc advance { i } {
|
||||
global gdb_prompt
|
||||
global gdb_prompt inferior_exited_re
|
||||
set prefix "$i from handler"
|
||||
|
||||
# Get us back into the handler
|
||||
|
@ -88,7 +88,7 @@ proc advance { i } {
|
|||
send_gdb "$i\n"
|
||||
exp_continue -continue_timer
|
||||
}
|
||||
-re "Program exited normally.*${gdb_prompt} $" {
|
||||
-re "$inferior_exited_re normally.*${gdb_prompt} $" {
|
||||
setup_kfail gdb/1639 powerpc-*-*bsd*
|
||||
fail "$test (program exited)"
|
||||
}
|
||||
|
@ -105,7 +105,7 @@ proc advance { i } {
|
|||
}
|
||||
|
||||
proc advancei { i } {
|
||||
global gdb_prompt
|
||||
global gdb_prompt inferior_exited_re
|
||||
set prefix "$i from handleri"
|
||||
set program_exited 0
|
||||
|
||||
|
@ -144,7 +144,7 @@ proc advancei { i } {
|
|||
-re "main .*${gdb_prompt} $" {
|
||||
fail "$test (in main)"
|
||||
}
|
||||
-re "Program exited normally.*${gdb_prompt} $" {
|
||||
-re "$inferior_exited_re normally.*${gdb_prompt} $" {
|
||||
fail "$test (program exited)"
|
||||
set program_exited 1
|
||||
}
|
||||
|
@ -170,7 +170,7 @@ proc advancei { i } {
|
|||
send_gdb "y\n"
|
||||
exp_continue -continue_timer
|
||||
}
|
||||
-re "Program exited normally.*${gdb_prompt} $" {
|
||||
-re "$inferior_exited_re normally.*${gdb_prompt} $" {
|
||||
kfail gdb/1639 "$test (program exited)"
|
||||
set program_exited 1
|
||||
}
|
||||
|
|
|
@ -150,7 +150,7 @@ gdb_test_multiple "finish" "$test" {
|
|||
-re ".*${decimal}.*callee.*NEXTI.*$gdb_prompt $" {
|
||||
pass "$test"
|
||||
}
|
||||
-re ".*(Program received|Program exited).*$gdb_prompt $" {
|
||||
-re ".*(Program received|$inferior_exited_re).*$gdb_prompt $" {
|
||||
# Oops... We ran to the end of the program... Better reset
|
||||
if {![runto_main]} then {
|
||||
fail "$test (Can't run to main)"
|
||||
|
|
|
@ -47,7 +47,7 @@ gdb_test_no_output "set width 0"
|
|||
gdb_test "info terminal" "No saved terminal information.*" "test info terminal"
|
||||
gdb_run_cmd 5
|
||||
gdb_expect {
|
||||
-re ".*120.*Program exited normally.*$gdb_prompt $" {
|
||||
-re ".*120.*$inferior_exited_re normally.*$gdb_prompt $" {
|
||||
gdb_test "info terminal" "No saved terminal information.*" "test info terminal #2"
|
||||
}
|
||||
default {
|
||||
|
|
|
@ -77,8 +77,7 @@ gdb_test_no_output "delete \$bpnum" "delete watchpoint"
|
|||
gdb_test "continue" "Continuing\\..*Breakpoint \[0-9\]+, func \\(\\) at .*$spu_file.c:.*" \
|
||||
"run until breakpoint hit"
|
||||
|
||||
gdb_test "continue" "Continuing\\..*Program exited normally.*" \
|
||||
"run until end"
|
||||
gdb_continue_to_end
|
||||
|
||||
gdb_exit
|
||||
|
||||
|
|
|
@ -116,7 +116,7 @@ gdb_test_multiple "print a" "print class" {
|
|||
# `a.x is 1' is asynchronous regarding to `frames-invalid'.
|
||||
#
|
||||
gdb_test_multiple "continue" "continue until exit" {
|
||||
-re "\r\n\032\032post-prompt\r\nContinuing.\r\n\r\n\032\032starting\(\r\n\r\n\032\032frames-invalid\)*\r\na.x is 1\r\n\(\r\n\032\032frames-invalid\r\n\)*\r\n\032\032exited 0\r\n\r\nProgram exited normally.\r\n\r\n\032\032stopped\r\n$gdb_prompt$" {
|
||||
-re "\r\n\032\032post-prompt\r\nContinuing.\r\n\r\n\032\032starting\(\r\n\r\n\032\032frames-invalid\)*\r\na.x is 1\r\n\(\r\n\032\032frames-invalid\r\n\)*\r\n\032\032exited 0\r\n.$inferior_exited_re normally.\r\n\r\n\032\032stopped\r\n$gdb_prompt$" {
|
||||
pass "continue until exit"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -122,8 +122,7 @@ gdb_expect_list "continue to exit" "$gdb_prompt$" {
|
|||
"\r\n\032\032starting\r\n"
|
||||
"a.x is 1\r\n"
|
||||
"\r\n\032\032exited 0\r\n"
|
||||
"\r\n"
|
||||
"Program exited normally.\r\n"
|
||||
".$inferior_exited_re normally.\r\n"
|
||||
"\r\n\032\032stopped\r\n"
|
||||
}
|
||||
|
||||
|
|
|
@ -101,9 +101,7 @@ gdb_expect {
|
|||
}
|
||||
}
|
||||
|
||||
gdb_test "continue" \
|
||||
".*Program exited normally.*" \
|
||||
"continue with disabled breakpoint 1.2"
|
||||
gdb_continue_to_end "disabled breakpoint 1.2"
|
||||
|
||||
# Make sure we can set a breakpoint on a source statement that spans
|
||||
# multiple lines.
|
||||
|
|
|
@ -129,7 +129,7 @@ gdb_test_no_output "disable 1" "disable breakpoint: disable"
|
|||
|
||||
gdb_run_cmd
|
||||
gdb_expect {
|
||||
-re "Program exited normally.*$gdb_prompt $" {
|
||||
-re "$inferior_exited_re normally.*$gdb_prompt $" {
|
||||
pass "disable breakpoint: run to breakpoint"
|
||||
}
|
||||
-re "$gdb_prompt $" {
|
||||
|
|
|
@ -175,10 +175,10 @@ gdb_test_multiple "ptype A" "ptype A" {
|
|||
}
|
||||
|
||||
gdb_test_multiple "cont" "finish program" {
|
||||
-re "Continuing.\r\n\r\nProgram exited normally.*$gdb_prompt $" {
|
||||
-re "Continuing.\r\n$inferior_exited_re normally.*$gdb_prompt $" {
|
||||
pass "finish program"
|
||||
}
|
||||
-re "Continuing.* EXIT code 0.*Program exited normally.*$gdb_prompt $" {
|
||||
-re "Continuing.* EXIT code 0.*$inferior_exited_re normally.*$gdb_prompt $" {
|
||||
pass "finish program (exit wrapper)"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -132,7 +132,7 @@ gdb_expect {
|
|||
-re ".*solib-d1.*$gdb_prompt $" {
|
||||
pass "Catch implicit load at startup"
|
||||
}
|
||||
-re "Program exited.*$gdb_prompt $" {
|
||||
-re "Inferior \[0-9\]+ exited.*$gdb_prompt $" {
|
||||
fail "CLLbs14756 || CLLbs16090 came back ???"
|
||||
}
|
||||
timeout { fail "(timeout) implicit library load" }
|
||||
|
@ -228,7 +228,7 @@ gdb_expect {
|
|||
-re "Stopped due to shared library event.*$gdb_prompt $" {
|
||||
pass "stop for shlib event"
|
||||
}
|
||||
-re "Program exited.*$gdb_prompt $" {
|
||||
-re "Inferior \[0-9\]+ exited.*$gdb_prompt $" {
|
||||
fail "Bug CLLbs16090 came back ?"
|
||||
}
|
||||
timeout { fail "(timeout) stop for shlib event " }
|
||||
|
|
|
@ -130,10 +130,10 @@ for {set filenum 0} {$filenum < 2} {incr filenum 1} {
|
|||
gdb_test "s 1" ".*25.*"
|
||||
if [istarget "hppa64-*-*"] {
|
||||
gdb_test "s 1" "0x\[0-9a-f\]+ in .*"
|
||||
gdb_test "c" ".*Program exited normally.*"
|
||||
gdb_continue_to_end
|
||||
} else {
|
||||
gdb_test "s 1" "0x\[0-9a-f\]+ in _start .*"
|
||||
gdb_test "s 1" ".*Program exited normally.*"
|
||||
gdb_continue_to_end "" "s 1"
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -78,9 +78,9 @@ gdb_test "s 1" "main .*/x1.cc:15.*"
|
|||
gdb_test "s 1" ".*16.*"
|
||||
if [istarget "hppa64-*-*"] {
|
||||
gdb_test "s 1" "0x\[0-9a-f\]+ in .*START.*"
|
||||
gdb_test "c" ".*Program exited normally.*"
|
||||
gdb_continue_to_end
|
||||
} else {
|
||||
gdb_test "s 1" "0x\[0-9a-f\]+ in _start .*"
|
||||
gdb_test "s 1" ".*Program exited normally.*"
|
||||
gdb_continue_to_end "" "s 1"
|
||||
}
|
||||
|
||||
|
|
|
@ -105,7 +105,7 @@ proc run_lang_tests {lang} {
|
|||
gdb_test "print nstype" " = {.0. = 7, .1. = 42}" \
|
||||
"print nstype on one line"
|
||||
|
||||
gdb_test "continue" "Program exited normally\."
|
||||
gdb_continue_to_end
|
||||
|
||||
remote_file host delete ${remote_python_file}
|
||||
}
|
||||
|
|
|
@ -71,5 +71,4 @@ gdb_test_multiple "info threads" "$test" {
|
|||
}
|
||||
}
|
||||
|
||||
gdb_test "continue" ".*Program exited normally\\." \
|
||||
"continue to end"
|
||||
gdb_continue_to_end
|
||||
|
|
|
@ -86,7 +86,6 @@ gdb_test_multiple "maint print dummy-frames" "dummy frame popped" {
|
|||
|
||||
# Continue one last time, the program should exit normally.
|
||||
|
||||
gdb_test "continue" "Program exited normally." \
|
||||
"continue to program exit"
|
||||
gdb_continue_to_end
|
||||
|
||||
return 0
|
||||
|
|
|
@ -59,7 +59,7 @@ if ![istarget "*-*-ultrix*"] then {
|
|||
}
|
||||
|
||||
proc test_all_threads { name kill } {
|
||||
global gdb_prompt
|
||||
global gdb_prompt inferior_exited_re
|
||||
|
||||
set i 0
|
||||
set j 0
|
||||
|
@ -80,7 +80,7 @@ proc test_all_threads { name kill } {
|
|||
send_gdb "continue\n"
|
||||
exp_continue
|
||||
}
|
||||
-re "Program exited normally\\.\[\r\n\]+$gdb_prompt" {
|
||||
-re "$inferior_exited_re normally.\[\r\n\]+$gdb_prompt" {
|
||||
pass "program exited normally"
|
||||
if {$i == 5} {
|
||||
pass "all threads ran once ($name)"
|
||||
|
|
|
@ -57,12 +57,13 @@ proc set_bp { where } {
|
|||
proc step_it { cmd } {
|
||||
global gdb_prompt
|
||||
global program_exited
|
||||
global inferior_exited_re
|
||||
|
||||
send_gdb "$cmd\n"
|
||||
gdb_expect {
|
||||
-re "0x\[0-9A-Fa-f\]* *in.*\r\n$gdb_prompt $" { pass "step_it"; return 0 }
|
||||
-re "0x\[0-9A-Fa-f\]* *\[0-9\]*.*\r\n$gdb_prompt $" { pass "step_it"; return 1 }
|
||||
-re "Program exited .*\n$gdb_prompt $" {
|
||||
-re "$inferior_exited_re .*\n$gdb_prompt $" {
|
||||
set program_exited 1
|
||||
return -1
|
||||
}
|
||||
|
@ -81,6 +82,7 @@ proc step_source {} {
|
|||
|
||||
proc continue_all {} {
|
||||
global gdb_prompt
|
||||
global inferior_exited_re
|
||||
|
||||
send_gdb "continue\n"
|
||||
gdb_expect {
|
||||
|
@ -88,7 +90,7 @@ proc continue_all {} {
|
|||
pass "continue_all"
|
||||
return 0
|
||||
}
|
||||
-re "Program exited .*\n$gdb_prompt $" {
|
||||
-re "$inferior_exited_re .*\n$gdb_prompt $" {
|
||||
set program_exited 1
|
||||
return 1;
|
||||
}
|
||||
|
|
|
@ -110,7 +110,6 @@ gdb_test_multiple "maint print dummy-frames" "dummy frame popped" {
|
|||
|
||||
# Continue one last time, the program should exit normally.
|
||||
|
||||
gdb_test "continue" "Program exited normally." \
|
||||
"continue to program exit"
|
||||
gdb_continue_to_end
|
||||
|
||||
return 0
|
||||
|
|
|
@ -177,7 +177,7 @@ gdb_expect {
|
|||
unsupported "continue to first thread: system does not support TLS"
|
||||
return -1
|
||||
}
|
||||
-re ".*Program exited normally.*$gdb_prompt $" {
|
||||
-re ".*$inferior_exited_re normally.*$gdb_prompt $" {
|
||||
fail "continue to first thread: program runaway"
|
||||
}
|
||||
-re ".*Pass 0 done.*Pass 1 done.*$gdb_prompt $" {
|
||||
|
|
|
@ -72,7 +72,7 @@ proc gdb_cell_embedspu {source dest options} {
|
|||
# Return 0 if so, 1 if it does not.
|
||||
proc skip_cell_tests {} {
|
||||
global skip_cell_tests_saved
|
||||
global srcdir subdir gdb_prompt
|
||||
global srcdir subdir gdb_prompt inferior_exited_re
|
||||
|
||||
# Use the cached value, if it exists.
|
||||
set me "skip_cell_tests"
|
||||
|
@ -136,11 +136,11 @@ proc skip_cell_tests {} {
|
|||
gdb_load "$exe"
|
||||
gdb_run_cmd
|
||||
gdb_expect {
|
||||
-re ".*Program exited normally.*${gdb_prompt} $" {
|
||||
-re ".*$inferior_exited_re normally.*${gdb_prompt} $" {
|
||||
verbose -log "\n$me: Cell/B.E. hardware detected"
|
||||
set skip_cell_tests_saved 0
|
||||
}
|
||||
-re ".*Program exited with code.*${gdb_prompt} $" {
|
||||
-re ".*$inferior_exited_re with code.*${gdb_prompt} $" {
|
||||
verbose -log "\n$me: Cell/B.E. hardware not detected"
|
||||
set skip_cell_tests_saved 1
|
||||
}
|
||||
|
|
|
@ -99,6 +99,8 @@ if ![info exists env(EXEEXT)] {
|
|||
|
||||
set octal "\[0-7\]+"
|
||||
|
||||
set inferior_exited_re "Inferior \[0-9\]+ \\(.*\\) exited"
|
||||
|
||||
### Only procedures should come after this point.
|
||||
|
||||
#
|
||||
|
@ -572,13 +574,14 @@ proc gdb_internal_error_resync {} {
|
|||
# }
|
||||
# }
|
||||
#
|
||||
# The standard patterns, such as "Program exited..." and "A problem
|
||||
# The standard patterns, such as "Inferior exited..." and "A problem
|
||||
# ...", all being implicitly appended to that list.
|
||||
#
|
||||
proc gdb_test_multiple { command message user_code } {
|
||||
global verbose
|
||||
global gdb_prompt
|
||||
global GDB
|
||||
global inferior_exited_re
|
||||
upvar timeout timeout
|
||||
upvar expect_out expect_out
|
||||
|
||||
|
@ -755,7 +758,7 @@ proc gdb_test_multiple { command message user_code } {
|
|||
fail "$message"
|
||||
set result 1
|
||||
}
|
||||
-re "Program exited with code \[0-9\]+.*$gdb_prompt $" {
|
||||
-re "$inferior_exited_re with code \[0-9\]+.*$gdb_prompt $" {
|
||||
if ![string match "" $message] then {
|
||||
set errmsg "$message (the program exited)"
|
||||
} else {
|
||||
|
@ -764,7 +767,7 @@ proc gdb_test_multiple { command message user_code } {
|
|||
fail "$errmsg"
|
||||
set result -1
|
||||
}
|
||||
-re "Program exited normally.*$gdb_prompt $" {
|
||||
-re "$inferior_exited_re normally.*$gdb_prompt $" {
|
||||
if ![string match "" $message] then {
|
||||
set errmsg "$message (the program exited)"
|
||||
} else {
|
||||
|
@ -1573,7 +1576,7 @@ proc is_lp64_target {} {
|
|||
|
||||
proc skip_altivec_tests {} {
|
||||
global skip_vmx_tests_saved
|
||||
global srcdir subdir gdb_prompt
|
||||
global srcdir subdir gdb_prompt inferior_exited_re
|
||||
|
||||
# Use the cached value, if it exists.
|
||||
set me "skip_altivec_tests"
|
||||
|
@ -1640,7 +1643,7 @@ proc skip_altivec_tests {} {
|
|||
verbose -log "\n$me altivec hardware not detected"
|
||||
set skip_vmx_tests_saved 1
|
||||
}
|
||||
-re ".*Program exited normally.*${gdb_prompt} $" {
|
||||
-re ".*$inferior_exited_re normally.*${gdb_prompt} $" {
|
||||
verbose -log "\n$me: altivec hardware detected"
|
||||
set skip_vmx_tests_saved 0
|
||||
}
|
||||
|
@ -1661,7 +1664,7 @@ proc skip_altivec_tests {} {
|
|||
|
||||
proc skip_vsx_tests {} {
|
||||
global skip_vsx_tests_saved
|
||||
global srcdir subdir gdb_prompt
|
||||
global srcdir subdir gdb_prompt inferior_exited_re
|
||||
|
||||
# Use the cached value, if it exists.
|
||||
set me "skip_vsx_tests"
|
||||
|
@ -1727,7 +1730,7 @@ proc skip_vsx_tests {} {
|
|||
verbose -log "\n$me VSX hardware not detected"
|
||||
set skip_vsx_tests_saved 1
|
||||
}
|
||||
-re ".*Program exited normally.*${gdb_prompt} $" {
|
||||
-re ".*$inferior_exited_re normally.*${gdb_prompt} $" {
|
||||
verbose -log "\n$me: VSX hardware detected"
|
||||
set skip_vsx_tests_saved 0
|
||||
}
|
||||
|
@ -3055,22 +3058,32 @@ proc gdb_get_line_number { text { file "" } } {
|
|||
# stub is used, we set a breakpoint at exit because we cannot rely on
|
||||
# exit() behavior of a remote target.
|
||||
#
|
||||
# mssg is the error message that gets printed.
|
||||
# MSSG is the error message that gets printed. If not given, a
|
||||
# default is used.
|
||||
# COMMAND is the command to invoke. If not given, "continue" is
|
||||
# used.
|
||||
|
||||
proc gdb_continue_to_end {mssg} {
|
||||
proc gdb_continue_to_end {{mssg ""} {command continue}} {
|
||||
global inferior_exited_re
|
||||
|
||||
if {$mssg == ""} {
|
||||
set text "continue until exit"
|
||||
} else {
|
||||
set text "continue until exit at $mssg"
|
||||
}
|
||||
if [target_info exists use_gdb_stub] {
|
||||
if {![gdb_breakpoint "exit"]} {
|
||||
return 0
|
||||
}
|
||||
gdb_test "continue" "Continuing..*Breakpoint .*exit.*" \
|
||||
"continue until exit at $mssg"
|
||||
$text
|
||||
} else {
|
||||
# Continue until we exit. Should not stop again.
|
||||
# Don't bother to check the output of the program, that may be
|
||||
# extremely tough for some remote systems.
|
||||
gdb_test "continue"\
|
||||
"Continuing.\[\r\n0-9\]+(... EXIT code 0\[\r\n\]+|Program exited normally\\.).*"\
|
||||
"continue until exit at $mssg"
|
||||
"Continuing.\[\r\n0-9\]+(... EXIT code 0\[\r\n\]+|$inferior_exited_re normally).*"\
|
||||
$text
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -575,6 +575,7 @@ proc mi_gdb_test { args } {
|
|||
global verbose
|
||||
global mi_gdb_prompt
|
||||
global GDB expect_out
|
||||
global inferior_exited_re
|
||||
upvar timeout timeout
|
||||
|
||||
set command [lindex $args 0]
|
||||
|
@ -698,7 +699,7 @@ proc mi_gdb_test { args } {
|
|||
fail "$message"
|
||||
set result 1
|
||||
}
|
||||
-re "Program exited with code \[0-9\]+.*$mi_gdb_prompt\[ \]*$" {
|
||||
-re "$inferior_exited_re with code \[0-9\]+.*$mi_gdb_prompt\[ \]*$" {
|
||||
if ![string match "" $message] then {
|
||||
set errmsg "$message (the program exited)"
|
||||
} else {
|
||||
|
|
|
@ -31,6 +31,7 @@ proc gdb_compile_opencl_hostapp {clsource executable options} {
|
|||
# it does not.
|
||||
proc skip_opencl_tests {} {
|
||||
global skip_opencl_tests_saved srcdir objdir subdir gdb_prompt
|
||||
global inferior_exited_re
|
||||
|
||||
# Use the cached value, if it exists. Cache value per "board" to handle
|
||||
# runs with multiple options (e.g. unix/{-m32,-64}) correctly.
|
||||
|
@ -59,11 +60,11 @@ proc skip_opencl_tests {} {
|
|||
clean_restart "$executable"
|
||||
gdb_run_cmd
|
||||
gdb_expect 30 {
|
||||
-re ".*Program exited normally.*${gdb_prompt} $" {
|
||||
-re ".*$inferior_exited_re normally.*${gdb_prompt} $" {
|
||||
verbose -log "\n$me: OpenCL support detected"
|
||||
set skip_opencl_tests_saved($board) 0
|
||||
}
|
||||
-re ".*Program exited with code.*${gdb_prompt} $" {
|
||||
-re ".*$inferior_exited_re code.*${gdb_prompt} $" {
|
||||
verbose -log "\n$me: OpenCL support not detected"
|
||||
set skip_opencl_tests_saved($board) 1
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue