-# Copyright 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2004, 2005,
-# 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
+# Copyright 1992-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
# This file is based on corefile.exp which was written by Fred
# Fish. (fnf@cygnus.com)
-if $tracelevel then {
- strace $tracelevel
-}
-
# Are we on a target board? As of 2004-02-12, GDB didn't have a
# mechanism that would let it efficiently access a remote corefile.
# I/O bandwith.
if { [istarget "*-*-*bsd*"]
- || [istarget "*-*-hpux*"]
|| [istarget "*-*-solaris*"]
|| [istarget "*-*-darwin*"]
|| [istarget "*-*-cygwin*"] } {
return
}
-# This testcase causes too much stress (in terms of memory usage)
-# on certain systems...
-if { [istarget "*-*-*irix*"] } {
- untested "Testcase too stressful for this system"
- return
-}
-
-set testfile "bigcore"
-set srcfile ${testfile}.c
-set binfile ${objdir}/${subdir}/${testfile}
-set corefile ${objdir}/${subdir}/${testfile}.corefile
+standard_testfile .c
+set corefile [standard_output_file ${binfile}.corefile]
if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } {
untested bigcore.exp
# Run GDB on the bigcore program up-to where it will dump core.
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${binfile}
+clean_restart ${binfile}
gdb_test_no_output "set print sevenbit-strings"
gdb_test_no_output "set width 0"
+# Get the core into the output directory.
+if {![is_remote host]} {
+ gdb_test "cd [file dirname $corefile]" "Working directory .*" \
+ "cd to test directory"
+}
+
if { ![runto_main] } then {
- gdb_suppress_tests;
+ gdb_suppress_tests
}
set print_core_line [gdb_get_line_number "Dump core"]
gdb_test "tbreak $print_core_line"
fail "$test (timeout)"
}
}
- return $heap;
+ return $heap
}
set next_heap [extract_heap next]
set prev_heap [extract_heap prev]
# Find the corefile
set file ""
foreach pat [list core.${inferior_pid} ${testfile}.core core] {
- set names [glob -nocomplain $pat]
+ set names [glob -nocomplain [standard_output_file $pat]]
if {[llength $names] == 1} {
set file [lindex $names 0]
remote_exec build "mv $file $corefile"
# Now load up that core file
set test "load corefile"
-gdb_test_multiple "core $corefile" "$test" {
+# We use [file tail] because gdb is still "cd"d to the
+# output directory.
+gdb_test_multiple "core [file tail $corefile]" "$test" {
-re "A program is being debugged already. Kill it. .y or n. " {
send_gdb "y\n"
exp_continue