⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 c.exp

📁 gdb-6.8 Linux下的调试程序 最新版本
💻 EXP
字号:
# Copyright (C) 2005, 2007, 2008 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# the Free Software Foundation; either version 3 of the License, or# (at your option) any later version.## This program is distributed in the hope that it will be useful,# but WITHOUT ANY WARRANTY; without even the implied warranty of# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the# GNU General Public License for more details.## You should have received a copy of the GNU General Public License# along with this program.  If not, see <http://www.gnu.org/licenses/>.# Miscellaneous CRIS simulator testcases testing syscall sequences.if ![istarget cris*-*-*] {    return}set CFLAGS_FOR_TARGET "-O2"if [istarget cris-*-*] {    set mach "crisv10"} {    set mach "crisv32"}# Using target_compile, since it is less noisy,if { [target_compile $srcdir/$subdir/hello.c compilercheck.x \	  "executable" "" ] == "" } {    set has_cc 1} {    verbose -log "Can't execute C compiler"    set has_cc 0}# Like istarget, except take a list of targets as a string.proc anytarget { targets } {    set targetlist [split $targets]    set argc [llength $targetlist]    for { set i 0 } { $i < $argc } { incr i } {	if [istarget [lindex $targetlist $i]] {	    return 1	}    }    return 0}foreach src [lsort [glob -nocomplain $srcdir/$subdir/*.c]] {    if ![runtest_file_p $runtests $src] {	continue    }    set testname "[file tail $src]"    set opt_array [slurp_options $src]    if { $opt_array == -1 } {	unresolved $testname	return    }    # And again, to simplify specifying tests.    if ![runtest_file_p $runtests $src] {	continue    }    # Note absence of CC in results, but don't make a big fuss over it.    if { $has_cc == 0 } {	untested $testname	continue    }    # Clear default options    set opts(cc) ""    set opts(sim) ""    set opts(output) ""    set opts(progoptions) ""    set opts(timeout) ""    set opts(mach) ""    set opts(xerror) "no"    set opts(dest) "$testname.x"    set opts(simenv) ""    set opts(kfail) ""    set opts(xfail) ""    set opts(target) ""    set opts(notarget) ""    # Clear any machine specific options specified in a previous test case    if [info exists opts(sim,$mach)] {	unset opts(sim,$mach)    }    foreach i $opt_array {	set opt_name [lindex $i 0]	set opt_machs [lindex $i 1]	set opt_val [lindex $i 2]	if ![info exists opts($opt_name)] {	    perror "unknown option $opt_name in file $src"	    unresolved $testname	    return	}	# Replace specific substitutions:	# @exedir@ is where the test-program is located.	regsub -all "@exedir@" $opt_val "[pwd]" opt_val	# @srcdir@ is where the source of the test-program is located.	regsub -all "@srcdir@" $opt_val "$srcdir/$subdir" opt_val	# Multiple of these options concatenate, they don't override.	if { $opt_name == "output" || $opt_name == "progoptions" } {	    set opt_val "$opts($opt_name)$opt_val"	}	# Similar with "xfail", "kfail", "target" and "notarget", but	# arguments are space-separated.	if { $opt_name == "xfail" || $opt_name == "kfail" \		 || $opt_name == "target"  || $opt_name == "notarget" } {	    if { $opts($opt_name) != "" } {		set opt_val "$opts($opt_name) $opt_val"	    }	}	foreach m $opt_machs {	    set opts($opt_name,$m) $opt_val	}	if { "$opt_machs" == "" } {	    set opts($opt_name) $opt_val	}    }    if { $opts(output) == "" } {	if { "$opts(xerror)" == "no" } {	    set opts(output) "pass\n"	} else {	    set opts(output) "fail\n"	}    }    if { $opts(target) != "" && ![anytarget $opts(target)] } {	continue    }    if { $opts(notarget) != "" && [anytarget $opts(notarget)] } {	continue    }    # If no machine specific options, default to the general version.    if ![info exists opts(sim,$mach)] {	set opts(sim,$mach) $opts(sim)    }    # Change \n sequences to newline chars.    regsub -all "\\\\n" $opts(output) "\n" opts(output)    verbose -log "Compiling $src with $opts(cc)"    set dest "$opts(dest)"    if { [sim_compile $src $dest "executable" "$opts(cc)" ] != "" } {	unresolved $testname	continue    }    verbose -log "Simulating $src with $opts(sim,$mach)"    # Time to setup xfailures and kfailures.    if { "$opts(xfail)" != "" } {	verbose -log "xfail: $opts(xfail)"	# Using eval to make $opts(xfail) appear as individual	# arguments.	eval setup_xfail $opts(xfail)    }    if { "$opts(kfail)" != "" } {	verbose -log "kfail: $opts(kfail)"	eval setup_kfail $opts(kfail)    }    set result [sim_run $dest "$opts(sim,$mach)" "$opts(progoptions)" \	"" "$opts(simenv)"]    set status [lindex $result 0]    set output [lindex $result 1]    if { "$status" == "pass" } {	if { "$opts(xerror)" == "no" } {	    if [string match $opts(output) $output] {		pass "$mach $testname"	    } else {		verbose -log "output:  $output" 3		verbose -log "pattern: $opts(output)" 3		fail "$mach $testname (execution)"	    }	} else {	    verbose -log "`pass' return code when expecting failure" 3	    fail "$mach $testname (execution)"	}    } elseif { "$status" == "fail" } {	if { "$opts(xerror)" == "no" } {	    fail "$mach $testname (execution)"	} else {	    if [string match $opts(output) $output] {		pass "$mach $testname"	    } else {		verbose -log "output:  $output" 3		verbose -log "pattern: $opts(output)" 3		fail "$mach $testname (execution)"	    }	}    } else {	$status "$mach $testname"    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -