+2013-03-14 Yao Qi <yao@codesourcery.com>
+
+ * config/monitor.exp (gdb_target_cmd): Remove semicolon after
+ 'return'.
+ (gdb_target_monitor, gdb_load): Likewise.
+ * config/sid.exp (gdb_load): Likewise.
+ * config/slite.exp (gdb_load): Likewise.
+ * config/vx.exp (gdb_start, spawn_vxgdb): Likewise.
+ * gdb.ada/arrayidx.exp, gdb.ada/null_array.exp: Likewise.
+ * gdb.arch/mips-octeon-bbit.exp (single_step): Likewise.
+ (single_step_until): Likewise.
+ * gdb.arch/powerpc-d128-regs.exp: Likewise.
+ * gdb.arch/system-gcore.exp: Likewise.
+ * gdb.base/bigcore.exp (extract_heap): Likewise.
+ * gdb.base/break-on-linker-gcd-function.exp: Likewise.
+ * gdb.base/call-ar-st.exp: Likewise.
+ * gdb.base/call-rt-st.exp: Likewise.
+ * gdb.base/call-sc.exp, gdb.base/call-strs.exp: Likewise.
+ * gdb.base/callfuncs.exp, gdb.base/completion.exp: Likewise.
+ * gdb.base/condbreak.exp, gdb.base/constvars.exp: Likewise.
+ * gdb.base/corefile.exp: Likewise.
+ * gdb.base/dbx.exp (gdb_file_cmd): Likewise.
+ * gdb.base/exprs.exp, gdb.base/fileio.exp: Likewise.
+ * gdb.base/fixsection.exp: Likewise.
+ * gdb.base/funcargs.exp: Likewise.
+ * gdb.base/gcore-buffer-overflow.exp: Likewise.
+ * gdb.base/gcore-relro.exp: Likewise.
+ * gdb.base/gcore.exp, gdb.base/gdb11530.exp: Likewise.
+ * gdb.base/gdb11531.exp, gdb.base/gnu-ifunc.exp: Likewise.
+ * gdb.base/info-os.exp, gdb.base/info-proc.exp: Likewise.
+ * gdb.base/interp.exp, gdb.base/langs.exp:: Likewise.
+ * gdb.base/list.exp: Likewise.
+ (set_listsize): Likewise.
+ * gdb.base/logical.exp, gdb.base/mips_pro.exp: Likewise.
+ * gdb.base/miscexprs.exp, gdb.base/nodebug.exp: Likewise.
+ * gdb.base/opaque.exp, gdb.base/pointers.exp: Likewise.
+ * gdb.base/psymtab.exp, gdb.base/ptype.exp: Likewise.
+ * gdb.base/relational.exp, gdb.base/scope.exp: Likewise.
+ * gdb.base/setvar.exp: Likewise.
+ (test_set): Likewise.
+ * gdb.base/signals.exp, gdb.base/sizeof.exp: Likewise.
+ * gdb.base/solib-overlap.exp: Likewise.
+ * gdb.base/store.exp, gdb.base/structs.exp: Likewise.
+ * gdb.base/structs2.exp, gdb.base/volatile.exp: Likewise.
+ * gdb.base/watchpoint.exp (initialize): Likewise.
+ (test_simple_watchpoint): Likewise.
+ (test_disabling_watchpoints): Likewise.
+ (test_watchpoint_triggered_in_syscall): Likewise.
+ * gdb.base/whatis.exp, gdb.cp/ambiguous.exp: Likewise.
+ * gdb.cp/casts.exp, gdb.cp/ctti.exp: Likewise.
+ * gdb.cp/namespace.exp, gdb.cp/nsdecl.exp: Likewise.
+ * gdb.cp/psmang.exp, gdb.dwarf2/dw2-ranges.exp: Likewise.
+ * gdb.hp/gdb.aCC/optimize.exp: Likewise.
+ * gdb.hp/gdb.aCC/watch-cmd.exp: Likewise.
+ * gdb.hp/gdb.base-hp/callfwmall.exp: Likewise.
+ * gdb.hp/gdb.base-hp/pxdb.exp: Likewise.
+ * gdb.hp/gdb.compat/xdb1.exp: Likewise.
+ * gdb.hp/gdb.compat/xdb2.exp: Likewise.
+ * gdb.hp/gdb.compat/xdb3.exp: Likewise.
+ * gdb.hp/gdb.defects/bs14602.exp: Likewise.
+ * gdb.hp/gdb.defects/solib-d.exp: Likewise.
+ * gdb.mi/gdb792.exp: Likewise.
+ * gdb.mi/mi-inheritance-syntax-error.exp: Likewise.
+ * gdb.mi/mi-logging.exp, gdb.mi/mi-var-cp.exp : Likewise.
+ * gdb.mi/mi-var-rtti.exp, gdb.python/py-type.exp: Likewise.
+ * gdb.threads/gcore-thread.exp: Likewise.
+ (load_core): Likewise.
+ * gdb.threads/pthreads.exp (all_threads_running): Likewise.
+ (test_startup, check_control_c): Likewise.
+ * gdb.threads/sigstep-threads.exp: Likewise.
+ * gdb.threads/thread_check.exp: Likewise.
+ * gdb.trace/backtrace.exp, gdb.trace/change-loc.exp: Likewise.
+ * gdb.trace/circ.exp (run_trace_experiment): Likewise.
+ (set_a_tracepoint, trace_buffer_normal): Likewise.
+ (gdb_trace_circular_tests): Likewise.
+ * gdb.trace/collection.exp: Likewise.
+ * gdb.trace/disconnected-tracing.exp: Likewise.
+ * gdb.trace/infotrace.exp: Likewise.
+ * gdb.trace/mi-traceframe-changed.exp: Likewise.
+ * gdb.trace/mi-tracepoint-changed.exp: Likewise.
+ * gdb.trace/mi-tsv-changed.exp (test_create_delete_modify_tsv): Likewise.
+ * gdb.trace/packetlen.exp, gdb.trace/passc-dyn.exp: Likewise.
+ * gdb.trace/pending.exp, gdb.trace/report.exp: Likewise.
+ * gdb.trace/stap-trace.exp: Likewise.
+ * gdb.trace/status-stop.exp,gdb.trace/strace.exp: Likewise.
+ * gdb.trace/tfind.exp, gdb.trace/trace-break.exp: Likewise.
+ * gdb.trace/trace-buffer-size.exp: Likewise.
+ * gdb.trace/tspeed.exp, gdb.trace/tsv.exp: Likewise.
+ * gdb.trace/unavailable.exp: Likewise.
+ * gdb.trace/while-dyn.exp: Likewise.
+ * lib/fortran.exp (set_lang_fortran): Likewise.
+ * lib/gdb.exp (default_gdb_version, gdb_start_cmd): Likewise.
+ (gdb_breakpoint, gdb_reinitialize_dir): Likewise.
+ (default_gdb_start, get_compiler_info): Likewise.
+ (gdb_compile, gdb_compile_objc, gdb_reload, gdb_init): Likewise.
+ (get_debug_format, setup_xfail_format): Likewise.
+ (rerun_to_main, gdb_skip_float_test): Likewise.
+ (build_id_debug_filename_get, get_remotetimeout): Likewise.
+ * lib/java.exp (set_lang_java): Likewise.
+ * lib/mi-support.exp (default_mi_gdb_start): Likewise.
+ (mi_gdb_reinitialize_dir, mi_gdb_target_cmd): Likewise.
+ (mi_gdb_file_cmd, mi_gdb_test): Likewise.
+ (mi_run_cmd_full, mi_expect_interrupt): Likewise.
+ * lib/objc.exp (set_lang_objc): Likewise.
+ * lib/pascal.exp (set_lang_pascal): Likewise.
+ * lib/prompt.exp (default_prompt_gdb_start): Likewise.
+ * lib/trace-support.exp (gdb_trace_setactions, gdb_tfind_test): Likewise.
+ (gdb_readexpr, gdb_gettpnum, gdb_find_recursion_test_baseline): Likewise.
+
2013-03-14 Sergio Durigan Junior <sergiodj@redhat.com>
PR c++/15203
}
-re "Remote MIPS debugging.*$gdb_prompt" {
verbose "Set target to $targetname";
- return 0;
+ return 0
}
-re "Remote debugging using .*$serialport.*$gdb_prompt" {
verbose "Set target to $targetname";
- return 0;
+ return 0
}
-re "Remote target $targetname connected to.*$gdb_prompt" {
verbose "Set target to $targetname";
- return 0;
+ return 0
}
-re "Connected to.*$gdb_prompt" {
verbose "Set target to $targetname";
- return 0;
+ return 0
}
-re "Ending remote.*$gdb_prompt" { }
-re "Connection refused.*$gdb_prompt" {
set targetname "[target_info gdb_protocol]"
} else {
perror "No protocol specified for [target_info name].";
- return -1;
+ return -1
}
if [target_info exists baud] {
gdb_test "set remotebaud [target_info baud]" "" ""
}
for {set j 1} {$j <= 2} {incr j} {
- if [gdb_file_cmd $exec_file] { return -1; }
+ if [gdb_file_cmd $exec_file] { return -1 }
- if ![gdb_target_cmd $targetname $serialport] { return 0; }
+ if ![gdb_target_cmd $targetname $serialport] { return 0 }
gdb_target_exec;
}
perror "Couldn't set target for $targetname, port is $serialport.";
- return -1;
+ return -1
}
proc gdb_target_exec { } {
remote_pop_conn host;
}
if { $state == "pass" } {
- if [gdb_target_monitor $arg] { return -1; }
+ if [gdb_target_monitor $arg] { return -1 }
gdb_test "list main" ".*" ""
verbose "Loaded $arg into $GDB\n";
- return 0;
+ return 0
}
} else {
}
if { $load_ok == 1 } {
- return 0;
+ return 0
}
}
}
}
perror "Couldn't load file into GDB.";
- return -1;
+ return -1
}
}
set timeout $prev_timeout
verbose "Timeout is now $timeout seconds" 2
- return $retval;
+ return $retval
}
} else {
if ![target_info exists netport] {
perror "Need either netport or gdb_serial entry for [target_info name].";
- return -1;
+ return -1
}
set targetname [target_info netport];
set command "target $protocol udp [target_info netport]\n";
set arg [remote_download host $arg];
if { $arg == "" } {
error "download failed"
- return -1;
+ return -1
}
}
send_gdb "load $arg $offset\n"
set state [spawn_vxgdb];
if { $state == "pass" } {
- return 0;
+ return 0
}
if { $state == "fail" } {
- return -1;
+ return -1
}
}
remote_reboot target;
-re "Done\..*$gdb_prompt $" {
verbose "Set target to [target_info hostname]" 1
set timeout 10;
- return "pass";
+ return "pass"
}
-re "net_connect: RPC: (Program not registered|.*Timed out).*$" {
warning "Couldn't set GDB to target [target_info netport]."
warning "Couldn't set target for vxworks."
}
}
- return "retry";
+ return "retry"
}
proc gdb_exit { } {
}
if [get_compiler_info] {
- return -1;
+ return -1
}
set old_gcc [expr [test_compiler_info {gcc-[0-3]-*}] \
|| [test_compiler_info {gcc-4-[0-6]-*}]]
runto "foo.adb:$bp_location"
if [get_compiler_info] {
- return -1;
+ return -1
}
if {[test_compiler_info {gcc-[0-3]-*}]
return 1
}
}
- return 0;
+ return 0
}
proc single_step_until { match } {
}
set insn [current_insn]
}
- return 0;
+ return 0
}
proc test_bbit { name taken } {
}
if [gdb_test "show arch" ".*currently powerpc:common.*" "Checking for PPC arch"] {
- return -1;
+ return -1
}
gdb_test "next" ""
-re "Undefined command: .gcore.*$gdb_prompt $" {
# gcore command not supported -- nothing to test here.
unsupported "gdb does not support gcore on this target"
- return -1;
+ return -1
}
-re "Save a core file .*$gdb_prompt $" {
pass "help gcore"
fail "$test (timeout)"
}
}
- return $heap;
+ return $heap
}
set next_heap [extract_heap next]
set prev_heap [extract_heap prev]
set binfile ${objdir}/${subdir}/${testfile}
if [get_compiler_info "c++"] {
- return -1;
+ return -1
}
set additional_flags {-ffunction-sections -Wl,--gc-sections}
# Test depends on printf, which the sparclet stub doesn't support.
if { [istarget "sparclet-*-*"] } {
- return 0;
+ return 0
}
if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } {
# used to compile the test case.
if [get_compiler_info] {
- return -1;
+ return -1
}
# Some targets can't call functions, so don't even bother with this
# Test depends on printf, which the sparclet stub doesn't support.
if { [istarget "sparclet-*-*"] } {
- return 0;
+ return 0
}
if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug nowarnings}] != "" } {
# used to compile the test case.
if [get_compiler_info] {
- return -1;
+ return -1
}
# Some targets can't do function calls, so don't even bother with this
# compiler used to compile the test case.
if [get_compiler_info] {
- return -1;
+ return -1
}
# Compile a variant of scalars.c using TYPE to specify the type of the
# Test depends on printf, which the sparclet stub doesn't support.
if { [istarget "sparclet-*-*"] } {
- return 0;
+ return 0
}
if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } {
# used to compile the test case.
if [get_compiler_info] {
- return -1;
+ return -1
}
if {$hp_aCC_compiler} {
}
if [get_compiler_info] {
- return -1;
+ return -1
}
gdb_exit
}
if [get_compiler_info] {
- return -1;
+ return -1
}
gdb_exit
# stop location, but avoids clutter when possible.
#
# Suppose you have a function written completely on one source line, like:
-# int foo (int x) { return 0; }
+# int foo (int x) { return 0 }
# Setting a breakpoint at `foo' actually places the breakpoint after
# foo's prologue.
#
# Create and source the file that provides information about the compiler
# used to compile the test case.
if [get_compiler_info] {
- return -1;
+ return -1
}
if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable debug ] != "" } {
# Create and source the file that provides information about the compiler
# used to compile the test case.
if [get_compiler_info] {
- return -1;
+ return -1
}
set corefile [core_find $binfile {coremmap.data}]
set arg [remote_download host $arg];
if { $arg == "" } {
error "download failed"
- return -1;
+ return -1
}
}
}
if [get_compiler_info] {
- return -1;
+ return -1
}
gdb_exit
# used to compile the test case.
if [get_compiler_info] {
- return -1;
+ return -1
}
remote_exec build {sh -xc test\ -r\ dir2.fileio.test\ &&\ chmod\ -f\ +w\ dir2.fileio.test}
if ![runto_main] then {
fail "Can't run to main"
- return 1;
+ return 1
}
#
# Create and source the file that provides information about the compiler
# used to compile the test case.
if [get_compiler_info] {
- return -1;
+ return -1
}
#
-re "Undefined command: .gcore.*$gdb_prompt $" {
# gcore command not supported -- nothing to test here.
unsupported "gdb does not support gcore on this target"
- return -1;
+ return -1
}
-re "Save a core file .*$gdb_prompt $" {
pass "help gcore"
-re "Undefined command: .gcore.*\r\n$gdb_prompt $" {
# gcore command not supported -- nothing to test here.
unsupported "gdb does not support gcore on this target"
- return -1;
+ return -1
}
-re "Save a core file .*\r\n$gdb_prompt $" {
pass $test
-re "Undefined command: .gcore.*$gdb_prompt $" {
# gcore command not supported -- nothing to test here.
unsupported "gdb does not support gcore on this target"
- return -1;
+ return -1
}
-re "Save a core file .*$gdb_prompt $" {
pass "help gcore"
# to gcc compiler.
if [get_compiler_info] {
- return -1;
+ return -1
}
if { ![test_compiler_info gcc*] } {
- return 0;
+ return 0
}
if { [prepare_for_testing $testfile.exp $testfile $testfile.c {debug}] } {
- return -1;
+ return -1
}
set testfile "gdb11531"
if { [prepare_for_testing $testfile.exp $testfile $testfile.c {debug}] } {
- return -1;
+ return -1
}
# Disable hardware watchpoints if necessary.
if ![runto_main] then {
fail "Can't run to main"
- return 1;
+ return 1
}
# The "if" condition is artifical to test regression of a former patch.
if ![runto_main] then {
fail "cannot run to main"
- return -1;
+ return -1
}
# Get PID of test program.
-re "Not supported on this target.*$gdb_prompt $" {
# info proc command not supported -- nothing to test here.
unsupported "gdb does not support info proc on this target"
- return -1;
+ return -1
}
}
if ![runto_main] then {
fail "run to main"
- return -1;
+ return -1
}
gdb_test "list" ".*\[0-9\].*main \\(int argc.*" "can list sources"
# Create and source the file that provides information about the compiler
# used to compile the test case.
if [get_compiler_info] {
- return -1;
+ return -1
}
gdb_exit
# Create and source the file that provides information about the compiler
# used to compile the test case.
if [get_compiler_info] {
- return -1;
+ return -1
}
#
incr set_listsize_count;
if [gdb_test "set listsize $arg" ".*" "setting listsize to $arg #$set_listsize_count"] {
- return 0;
+ return 0
}
if { $arg < 0 } {
set arg "unlimited";
}
if [gdb_test "show listsize" "Number of source lines.* is ${arg}.*" "show listsize $arg #$set_listsize_count"] {
- return 0;
+ return 0
}
return 1
}
}
if [get_compiler_info] {
- return -1;
+ return -1
}
gdb_exit
# Create and source the file that provides information about the compiler
# used to compile the test case.
if [get_compiler_info] {
- return -1;
+ return -1
}
}
if [get_compiler_info] {
- return -1;
+ return -1
}
gdb_exit
set binfile $objdir/$subdir/$testfile
if [get_compiler_info] {
- return -1;
+ return -1
}
if [test_compiler_info "xlc-*"] {
# Create and source the file that provides information about the compiler
# used to compile the test case.
if [get_compiler_info] {
- return -1;
+ return -1
}
# Start with a fresh gdb.
}
if [get_compiler_info] {
- return -1;
+ return -1
}
gdb_exit
# Create and source the file that provides information about the compiler
# used to compile the test case.
if [get_compiler_info] {
- return -1;
+ return -1
}
gdb_exit
# Create and source the file that provides information about the compiler
# used to compile the test case.
if [get_compiler_info] {
- return -1;
+ return -1
}
gdb_exit
}
if [get_compiler_info] {
- return -1;
+ return -1
}
#
# Create and source the file that provides information about the compiler
# used to compile the test case.
if [get_compiler_info] {
- return -1;
+ return -1
}
# Test locating various things when stopped just inside main, after
# Create and source the file that provides information about the compiler
# used to compile the test case.
if [get_compiler_info] {
- return -1;
+ return -1
}
gdb_exit
verbose "doing $arg $match"
if [gdb_test "$arg" "$match" "$mess"] {
fail "$message -- $match";
- return 1;
+ return 1
}
}
}
- return 0;
+ return 0
}
#
# Create and source the file that provides information about the compiler
# used to compile the test case.
if [get_compiler_info] {
- return -1;
+ return -1
}
if {$hp_cc_compiler} {
}
if [get_compiler_info] {
- return -1;
+ return -1
}
gdb_exit
}
if [get_compiler_info] {
- return -1;
+ return -1
}
# Library file.
}
if [get_compiler_info] {
- return -1;
+ return -1
}
#
# compiler used to compile the test case.
if [get_compiler_info] {
- return -1;
+ return -1
}
# Compile a variant of structs.c using TYPES to specify the type of
# Create and source the file that provides information about the compiler
# used to compile the test case.
if [get_compiler_info] {
- return -1;
+ return -1
}
# build the first test case
# Create and source the file that provides information about the compiler
# used to compile the test case.
if [get_compiler_info] {
- return -1;
+ return -1
}
#
global srcfile
if [gdb_test "break marker1" "Breakpoint 1 at $hex: file .*$srcfile, line $decimal.*" "set breakpoint at marker1" ] {
- return 0;
+ return 0
}
if [gdb_test "break marker2" "Breakpoint 2 at $hex: file .*$srcfile, line $decimal.*" "set breakpoint at marker2" ] {
- return 0;
+ return 0
}
if [gdb_test "info break" "1\[ \]*breakpoint.*marker1.*\r\n2\[ \]*breakpoint.*marker2.*" "info break in watchpoint.exp" ] {
- return 0;
+ return 0
}
gdb_test "watch ival3" ".*\[Ww\]atchpoint 3: ival3.*" "set watchpoint on ival3"
if [gdb_test "info watch" "3\[ \]*.*watchpoint.*ival3" "watchpoint found in watchpoint/breakpoint table" ] {
- return 0;
+ return 0
}
# we get to the first marker function.
if [gdb_test "disable 3" "disable 3\[\r\n\]+" "disable watchpoint" ] {
- return 0;
+ return 0
}
# Ensure that the watchpoint is disabled when we startup.
if [gdb_test "disable 3" "^disable 3\[\r\n\]+" "disable watchpoint in test_simple_watchpoint" ] {
- return 0;
+ return 0
}
# Run until we get to the first marker function.
# After reaching the marker function, enable the watchpoint.
if [gdb_test "enable 3" "^enable 3\[\r\n\]+" "enable watchpoint" ] {
- return ;
+ return
}
# Disable the watchpoint so we run at full speed until we exit.
if [gdb_test "disable 3" "^disable 3\[\r\n\]+" "watchpoint disabled" ] {
- return ;
+ return
}
# Ensure that the watchpoint is disabled when we startup.
if [gdb_test "disable 3" "^disable 3\[\r\n\]+" "disable watchpoint in test_disabling_watchpoints" ] {
- return 0;
+ return 0
}
# After reaching the marker function, enable the watchpoint.
if [gdb_test "enable 3" "^enable 3\[\r\n\]+" "watchpoint enabled" ] {
- return ;
+ return
}
# Disable the watchpoint but leave breakpoints
if [gdb_test "disable 3" "^disable 3\[\r\n\]+" "disable watchpoint #2 in test_disabling_watchpoints" ] {
- return 0;
+ return 0
}
}
default {
fail "continue to read";
- return ;
+ return
}
}
# Create and source the file that provides information about the compiler
# used to compile the test case.
if [get_compiler_info] {
- return -1;
+ return -1
}
# Start with a fresh gdb.
standard_testfile .cc
if [get_compiler_info "c++"] {
- return -1;
+ return -1
}
if { [test_compiler_info gcc-*] } then { continue }
standard_testfile .cc
if [get_compiler_info "c++"] {
- return -1;
+ return -1
}
if {[prepare_for_testing $testfile.exp $testfile $srcfile {debug c++}]} {
standard_testfile cttiadd.cc cttiadd1.cc cttiadd2.cc cttiadd3.cc
if [get_compiler_info "c++"] {
- return -1;
+ return -1
}
if {[prepare_for_testing $testfile.exp $testfile \
standard_testfile .cc namespace1.cc
if [get_compiler_info c++] {
- return -1;
+ return -1
}
set xfail_class_types 0
standard_testfile .cc
if [get_compiler_info] {
- return -1;
+ return -1
}
if {[prepare_for_testing $testfile.exp $testfile $srcfile {debug c++}]} {
standard_testfile psmang1.cc psmang2.cc
if [get_compiler_info "c++"] {
- return -1;
+ return -1
}
if {[prepare_for_testing $testfile.exp $testfile \
# The .c files use __attribute__.
if [get_compiler_info] {
- return -1;
+ return -1
}
if !$gcc_compiled {
verbose "Skipping DW_AT_ranges test."
set binfile ${objdir}/${subdir}/${testfile}
if [get_compiler_info] {
- return -1;
+ return -1
}
}
if [get_compiler_info] {
- return -1;
+ return -1
}
if { $gcc_compiled } then { continue }
# used to compile the test case.
if [get_compiler_info] {
- return -1;
+ return -1
}
if {$hp_aCC_compiler} {
set binfile ${objdir}/${subdir}/${testfile}
if [get_compiler_info "c++"] {
- return -1;
+ return -1
}
if { $gcc_compiled } then { continue }
}
if [get_compiler_info] {
- return -1;
+ return -1
}
if { $gcc_compiled } then { continue }
}
if [get_compiler_info] {
- return -1;
+ return -1
}
if { $gcc_compiled } then { continue }
}
if [get_compiler_info] {
- return -1;
+ return -1
}
if { $gcc_compiled } then { continue }
# Create and source the file that provides information about the compiler
# used to compile the test case.
if [get_compiler_info] {
- return -1;
+ return -1
}
# set up appropriate compile option to recognize long double
# Create and source the file that provides information about the compiler
# used to compile the test case.
if [get_compiler_info] {
- return -1;
+ return -1
}
# set up appropriate compile option to recognize long double
standard_testfile .cc
if [get_compiler_info "c++"] {
- return -1;
+ return -1
}
if {[gdb_compile $srcdir/$subdir/$srcfile $binfile executable {debug c++}] != ""} {
standard_testfile .cc
if [get_compiler_info "c++"] {
- return -1;
+ return -1
}
if {[gdb_compile $srcdir/$subdir/$srcfile $binfile executable {debug c++}] != ""} {
if [build_executable $testfile.exp $testfile $srcfile $opts] {
untested mi-logging.exp
- return -1;
+ return -1
}
if {[mi_run_to_main] < 0} {
standard_testfile .cc
if [get_compiler_info "c++"] {
- return -1;
+ return -1
}
if {[gdb_compile $srcdir/$subdir/$srcfile $binfile executable {debug c++}] != ""} {
set opts {debug c++}
if [build_executable $testfile.exp $testfile $srcfile $opts] {
- return -1;
+ return -1
}
mi_gdb_load ${binfile}
standard_testfile
if [get_compiler_info c++] {
- return -1;
+ return -1
}
# Build inferior to language specification.
-re "Undefined command: .gcore.*$gdb_prompt $" {
# gcore command not supported -- nothing to test here.
unsupported "gdb does not support gcore on this target"
- return -1;
+ return -1
}
-re "Save a core file .*$gdb_prompt $" {
pass "help gcore"
}
-re "${nl}$gdb_prompt $" {
unsupported "gdb does not support threads on this target"
- return -1;
+ return -1
}
}
-re " is not a core dump:.*\r\n$gdb_prompt $" {
fail "re-load generated corefile (bad file format)"
# No use proceeding from here.
- return 0;
+ return 0
}
-re ": No such file or directory.*\r\n$gdb_prompt $" {
fail "re-load generated corefile (file not found)"
# No use proceeding from here.
- return 0;
+ return 0
}
-re "Couldn't find .* registers in core file.*\r\n$gdb_prompt $" {
fail "re-load generated corefile (incomplete note section)"
}
if { $return_me == 1 } then {
- return 0;
+ return 0
}
# Check that we stopped when we actually expected to stop, by
}
if { $return_me == 1 } then {
- return 0;
+ return 0
}
# Extract the thread id number of main thread from "info threads" output.
}
timeout {
fail "$description (timeout)"
- return 1;
+ return 1
}
}
gdb_test "bt" ".*"
if [all_threads_running] then {
pass "All threads running after continuing from ^C stop"
}
- return 0;
+ return 0
}
proc check_backtraces {} {
clean_restart $executable
if ![runto_main] {
- return -1;
+ return -1
}
# `noprint' would not test the full logic of GDB.
if ![runto_main] then {
fail "Can't run to main"
- return 1;
+ return 1
}
if { ![gdb_target_supports_trace] } then {
unsupported "Current target does not support trace"
- return 1;
+ return 1
}
}
if { $return_me == 1 } then {
- return -1;
+ return -1
}
#
if { ![gdb_target_supports_trace] } then {
unsupported "Current target does not support trace"
- return -1;
+ return -1
}
if [is_amd64_regs_target] {
if [gdb_test "tstart" \
"\[\r\n\]*" \
- "start trace experiment, pass $pass"] then { return 1; }
+ "start trace experiment, pass $pass"] then { return 1 }
if [gdb_test "continue" \
"Continuing.*Breakpoint \[0-9\]+, end.*" \
- "run to end, pass $pass"] then { return 1; }
+ "run to end, pass $pass"] then { return 1 }
if [gdb_test "tstop" \
"\[\r\n\]*" \
- "stop trace experiment, pass $pass"] then { return 1; }
- return 0;
+ "stop trace experiment, pass $pass"] then { return 1 }
+ return 0
}
# return 0 for success, 1 for failure
if [gdb_test "trace $func" \
"Tracepoint \[0-9\]+ at .*" \
"set tracepoint at $func"] then {
- return 1;
+ return 1
}
if [gdb_trace_setactions "set actions for $func" \
"" \
"collect testload" "^$"] then {
- return 1;
+ return 1
}
- return 0;
+ return 0
}
# return 0 for success, 1 for failure
proc setup_tracepoints { } {
gdb_delete_tracepoints
- if [set_a_tracepoint func0] then { return 1; }
- if [set_a_tracepoint func1] then { return 1; }
- if [set_a_tracepoint func2] then { return 1; }
- if [set_a_tracepoint func3] then { return 1; }
- if [set_a_tracepoint func4] then { return 1; }
- if [set_a_tracepoint func5] then { return 1; }
- if [set_a_tracepoint func6] then { return 1; }
- if [set_a_tracepoint func7] then { return 1; }
- if [set_a_tracepoint func8] then { return 1; }
- if [set_a_tracepoint func9] then { return 1; }
- return 0;
+ if [set_a_tracepoint func0] then { return 1 }
+ if [set_a_tracepoint func1] then { return 1 }
+ if [set_a_tracepoint func2] then { return 1 }
+ if [set_a_tracepoint func3] then { return 1 }
+ if [set_a_tracepoint func4] then { return 1 }
+ if [set_a_tracepoint func5] then { return 1 }
+ if [set_a_tracepoint func6] then { return 1 }
+ if [set_a_tracepoint func7] then { return 1 }
+ if [set_a_tracepoint func8] then { return 1 }
+ if [set_a_tracepoint func9] then { return 1 }
+ return 0
}
# return 0 for success, 1 for failure
}
if { !$ok } {
unsupported $test
- return 1;
+ return 1
}
set ok 0
}
if { !$ok } {
unsupported $test
- return 1;
+ return 1
}
- return 0;
+ return 0
}
# return 0 for success, 1 for failure
proc gdb_trace_circular_tests { } {
if { ![gdb_target_supports_trace] } then {
unsupported "Current target does not support trace"
- return 1;
+ return 1
}
- if [trace_buffer_normal] then { return 1; }
+ if [trace_buffer_normal] then { return 1 }
gdb_test "break begin" ".*" ""
gdb_test "break end" ".*" ""
gdb_test "tstop" ".*" ""
gdb_test "tfind none" ".*" ""
- if [setup_tracepoints] then { return 1; }
+ if [setup_tracepoints] then { return 1 }
# First, run the trace experiment with default attributes:
# Make sure it behaves as expected.
- if [run_trace_experiment 1] then { return 1; }
+ if [run_trace_experiment 1] then { return 1 }
if [gdb_test "tfind start" \
"#0 func0 .*" \
- "find frame zero, pass 1"] then { return 1; }
+ "find frame zero, pass 1"] then { return 1 }
if [gdb_test "tfind 9" \
"#0 func9 .*" \
- "find frame nine, pass 1"] then { return 1; }
+ "find frame nine, pass 1"] then { return 1 }
if [gdb_test "tfind none" \
"#0 end .*" \
- "quit trace debugging, pass 1"] then { return 1; }
+ "quit trace debugging, pass 1"] then { return 1 }
# Then, shrink the trace buffer so that it will not hold
# all ten trace frames. Verify that frame zero is still
# collected, but frame nine is not.
if [gdb_test "maint packet QTBuffer:size:200" \
"received: .OK." "shrink the target trace buffer"] then {
- return 1;
+ return 1
}
- if [run_trace_experiment 2] then { return 1; }
+ if [run_trace_experiment 2] then { return 1 }
if [gdb_test "tfind start" \
"#0 func0 .*" \
- "find frame zero, pass 2"] then { return 1; }
+ "find frame zero, pass 2"] then { return 1 }
if [gdb_test "tfind 9" \
".* failed to find .*" \
- "fail to find frame nine, pass 2"] then { return 1; }
+ "fail to find frame nine, pass 2"] then { return 1 }
if [gdb_test "tfind none" \
"#0 end .*" \
- "quit trace debugging, pass 2"] then { return 1; }
+ "quit trace debugging, pass 2"] then { return 1 }
# Finally, make the buffer circular. Now when it runs out of
# space, it should wrap around and overwrite the earliest frames.
# 3) frame nine will be available (unlike on pass 2).
if [gdb_test "maint packet QTBuffer:circular:1" \
"received: .OK." "make the target trace buffer circular"] then {
- return 1;
+ return 1
}
- if [run_trace_experiment 3] then { return 1; }
+ if [run_trace_experiment 3] then { return 1 }
if [gdb_test "tfind start" \
"#0 func\[1-9\] .*" \
- "first frame is NOT frame zero, pass 3"] then { return 1; }
+ "first frame is NOT frame zero, pass 3"] then { return 1 }
if [gdb_test "tfind 9" \
"#0 func9 .*" \
- "find frame nine, pass 3"] then { return 1; }
+ "find frame nine, pass 3"] then { return 1 }
if [gdb_test "tfind none" \
"#0 end .*" \
- "quit trace debugging, pass 3"] then { return 1; }
+ "quit trace debugging, pass 3"] then { return 1 }
- return 0;
+ return 0
}
gdb_test_no_output "set circular-trace-buffer on" \
if { ![gdb_target_supports_trace] } then {
unsupported "Current target does not support trace"
- return 1;
+ return 1
}
# Body of test encased in a proc so we can return prematurely.
if ![gdb_target_supports_trace] {
unsupported "target does not support trace"
- return -1;
+ return -1
}
# Disconnect in tracing.
if { ![gdb_target_supports_trace] } then {
unsupported "Current target does not support trace"
- return 1;
+ return 1
}
gdb_test "break end" "Breakpoint \[0-9\] at .*"
if ![gdb_target_supports_trace] {
unsupported "Current target does not support trace"
- return -1;
+ return -1
}
gdb_exit
if ![gdb_target_supports_trace] {
unsupported "Current target does not support trace"
- return -1;
+ return -1
}
gdb_exit
if ![gdb_target_supports_trace] {
unsupported "Current target does not support trace"
- return -1;
+ return -1
}
gdb_exit
if [mi_gdb_start] {
if ![gdb_target_supports_trace] {
unsupported "Current target does not support trace"
- return -1;
+ return -1
}
gdb_exit
if { ![gdb_target_supports_trace] } then {
unsupported "Current target does not support trace"
- return 1;
+ return 1
}
if { ![gdb_target_supports_trace] } then {
unsupported "Current target does not support trace"
- return 1;
+ return 1
}
if ![gdb_target_supports_trace] {
unsupported "Current target does not support trace"
- return -1;
+ return -1
}
# Verify pending tracepoint is resolved to running to main.
if { ![gdb_target_supports_trace] } then {
unsupported "Current target does not support trace"
- return 1;
+ return 1
}
}
if { $return_me == 1 } then {
- return -1;
+ return -1
}
#
if { ![gdb_target_supports_trace] } {
# Test cannot run on this target.
- return 1;
+ return 1
}
gdb_collect_probe_arg "probe args without semaphore" "-probe-stap user" "23"
if ![gdb_target_supports_trace] {
unsupported "target does not support trace"
- return -1;
+ return -1
}
# Verify that the sequence of commands "tstart tstop tstart" works well.
if [string equal $type "ftrace"] {
# The instruction may be not long enough to set a fast
# tracepoint. Skip the rest of this test.
- return -1;
+ return -1
} else {
fail $test
}
if [string equal $type "ftrace"] {
# The instruction may be not long enough to set a fast
# tracepoint. Skip the rest of this test.
- return -1;
+ return -1
} else {
fail $test
}
# the socket file.
gdb_test "detach" "Detaching .*, process .*"
unsupported "Current target does not support trace"
- return -1;
+ return -1
}
strace_probe_marker
if { ![gdb_target_supports_trace] } then {
unsupported "Current target does not support trace"
- return 1;
+ return 1
}
}
if { $return_me == 1 } then {
- return -1;
+ return -1
}
# test tstatus (when trace on)
}
if { $return_me == 1 } then {
- return -1;
+ return -1
}
# test tstatus (when trace off)
if ![gdb_target_supports_trace] {
unsupported "target does not support trace"
- return -1;
+ return -1
}
set fpreg "fp"
if ![gdb_target_supports_trace] {
unsupported "target does not support trace"
- return -1;
+ return -1
}
set BUFFER_SIZE 4
# If we did not get the default size then there is no point in running the
# tests below.
if { $default_size < 0 } {
- return -1;
+ return -1
}
# Change buffer size to 'BUFFER_SIZE'.
if { ![gdb_target_supports_trace] } then {
unsupported "Current target does not support trace"
- return 1;
+ return 1
}
# Body of test encased in a proc so we can return prematurely.
# The rest of the testing needs actual tracing to work.
if { ![gdb_target_supports_trace] } then {
unsupported "Current target does not support trace"
- return 1;
+ return 1
}
gdb_delete_tracepoints
if { ![gdb_target_supports_trace] } then {
unsupported "Current target does not support trace"
- return 1;
+ return 1
}
# Body of test encased in a proc so we can return prematurely.
if { ![gdb_target_supports_trace] } then {
unsupported "Current target does not support trace"
- return 1;
+ return 1
}
#
"set language to \"fortran\""] {
return 0
}
- return 1;
+ return 1
}
}
proc gdb_version { } {
- return [default_gdb_version];
+ return [default_gdb_version]
}
#
-re "$gdb_prompt $" { }
default {
perror "gdb_init_command for target failed";
- return -1;
+ return -1
}
}
}
if { $print_pass } {
pass $test_name
}
- return 1;
+ return 1
}
# Set breakpoint at function and run gdb until it breaks there.
# elements, and we don't want Tcl to move the remaining elements after
# the first to $args. That is why $function is wrapped in {}.
if ![eval gdb_breakpoint {$function} $args] {
- return 0;
+ return 0
}
gdb_run_cmd
perror "Couldn't send $command to GDB.";
}
fail "$message";
- return $result;
+ return $result
}
# since we're checking if each line of the multi-line
# command are 'accepted' by GDB here,
perror "Couldn't send $command to GDB.";
}
fail "$message";
- return $result;
+ return $result
}
}
}
global gdb_prompt
if [is_remote host] {
- return "";
+ return ""
}
send_gdb "dir\n"
gdb_expect 60 {
verbose "Spawning $GDB $INTERNAL_GDBFLAGS $GDBFLAGS"
if [info exists gdb_spawn_id] {
- return 0;
+ return 0
}
if ![is_remote host] {
set res [remote_spawn host "$GDB $INTERNAL_GDBFLAGS $GDBFLAGS [host_info gdb_opts]"];
if { $res < 0 || $res == "" } {
perror "Spawning $GDB failed."
- return 1;
+ return 1
}
gdb_expect 360 {
-re "\[\r\n\]$gdb_prompt $" {
warning "Couldn't set the width to 0."
}
}
- return 0;
+ return 0
}
# Examine the output of compilation to determine whether compilation
uplevel \#0 { set false false }
}
- return 0;
+ return 0
}
proc test_compiler_info { {compiler ""} } {
clone_output "gdb compile failed, $result"
}
}
- return $result;
+ return $result
}
proc send_gdb { string } {
global suppress_flag;
if { $suppress_flag } {
- return "suppressed";
+ return "suppressed"
}
- return [remote_send host "$string"];
+ return [remote_send host "$string"]
}
#
proc gdb_continue { function } {
global decimal
- return [gdb_test "continue" ".*Breakpoint $decimal, $function .*" "continue to $function"];
+ return [gdb_test "continue" ".*Breakpoint $decimal, $function .*" "continue to $function"]
}
proc default_gdb_init { args } {
set gdbserver_reconnect_p 1
unset gdbserver_reconnect_p
- return [eval default_gdb_init $args];
+ return [eval default_gdb_init $args]
}
proc gdb_finish { } {
-re "Compiled with (.*) debugging format.\r\n.*$gdb_prompt $" {
set debug_format $expect_out(1,string)
verbose "debug format is $debug_format"
- return 1;
+ return 1
}
-re "No current source file.\r\n$gdb_prompt $" {
perror "get_debug_format used when no current source file"
- return 0;
+ return 0
}
-re "$gdb_prompt $" {
warning "couldn't check debug format (no valid response)."
- return 1;
+ return 1
}
timeout {
warning "couldn't check debug format (timeout)."
- return 1;
+ return 1
}
}
}
if {$ret} then {
setup_xfail "*-*-*"
}
- return $ret;
+ return $ret
}
# gdb_get_line_number TEXT [FILE]
proc gdb_skip_float_test { msg } {
if [target_info exists gdb,skip_float_tests] {
verbose "Skipping test '$msg': no float tests.";
- return 1;
+ return 1
}
- return 0;
+ return 0
}
# Print a message and return true if a test should be skipped
proc gdb_skip_stdio_test { msg } {
if [target_info exists gdb,noinferiorio] {
verbose "Skipping test '$msg': no inferior i/o.";
- return 1;
+ return 1
}
- return 0;
+ return 0
}
proc gdb_skip_bogus_test { msg } {
- return 0;
+ return 0
}
# Return true if a test should be skipped due to lack of XML support
# Convert it to hex.
binary scan $data H* data
regsub {^..} $data {\0/} data
- return ".build-id/${data}.debug";
+ return ".build-id/${data}.debug"
}
# Create stripped files for DEST, replacing it. If ARGS is passed, it is a
gdb_test_multiple "show remotetimeout" "" {
-re "Timeout limit to wait for target to respond is ($decimal).*$gdb_prompt $" {
- return $expect_out(1,string);
+ return $expect_out(1,string)
}
}
"set language to \"java\""] {
return 0
}
- return 1;
+ return 1
}
# Local Variables:
verbose "Spawning $GDB $INTERNAL_GDBFLAGS $GDBFLAGS $MIFLAGS"
if [info exists gdb_spawn_id] {
- return 0;
+ return 0
}
if ![is_remote host] {
set res [remote_spawn host "$GDB $INTERNAL_GDBFLAGS $GDBFLAGS $MIFLAGS [host_info gdb_opts]"];
if { $res < 0 || $res == "" } {
perror "Spawning $GDB failed."
- return 1;
+ return 1
}
gdb_expect {
-re "~\"GNU.*\r\n~\".*$mi_gdb_prompt$" {
if { $MIFLAGS == "-i=mi1" } {
perror "(mi startup) Got unexpected new mi prompt."
remote_close host;
- return -1;
+ return -1
}
verbose "GDB initialized."
}
if { $MIFLAGS != "-i=mi1" } {
perror "(mi startup) Got unexpected old mi prompt."
remote_close host;
- return -1;
+ return -1
}
verbose "GDB initialized."
}
-re ".*unrecognized option.*for a complete list of options." {
untested "Skip mi tests (not compiled with mi support)."
remote_close host;
- return -1;
+ return -1
}
-re ".*Interpreter `mi' unrecognized." {
untested "Skip mi tests (not compiled with mi support)."
remote_close host;
- return -1;
+ return -1
}
timeout {
perror "(timeout) GDB never initialized after 10 seconds."
mi_detect_async
- return 0;
+ return 0
}
#
}
if [is_remote host] {
- return "";
+ return ""
}
if { $MIFLAGS == "-i=mi1" } {
gdb_expect 60 {
-re "47\\^connected.*$mi_gdb_prompt" {
verbose "Set target to $targetname";
- return 0;
+ return 0
}
-re "unknown host.*$mi_gdb_prompt" {
verbose "Couldn't look up $serialport"
}
-re "Remote MIPS debugging.*$mi_gdb_prompt$" {
verbose "Set target to $targetname";
- return 0;
+ return 0
}
-re "Remote debugging using .*$serialport_re.*$mi_gdb_prompt$" {
verbose "Set target to $targetname";
- return 0;
+ return 0
}
-re "Remote target $targetname connected to.*$mi_gdb_prompt$" {
verbose "Set target to $targetname";
- return 0;
+ return 0
}
-re "Connected to.*$mi_gdb_prompt$" {
verbose "Set target to $targetname";
- return 0;
+ return 0
}
-re "Ending remote.*$mi_gdb_prompt$" { }
-re "Connection refused.*$mi_gdb_prompt$" {
set arg [remote_download host $arg];
if { $arg == "" } {
error "download failed"
- return -1;
+ return -1
}
}
perror "Couldn't send $command to GDB.";
}
fail "$message";
- return $result;
+ return $result
}
gdb_expect 2 {
-re "\[\r\n\]" { }
perror "Couldn't send $command to GDB.";
}
fail "$message";
- return $result;
+ return $result
}
}
}
fail "$message";
}
gdb_suppress_entire_file "GDB died";
- return -1;
+ return -1
}
-re "Ending remote debugging.*$mi_gdb_prompt\[ \]*$" {
if ![isnative] then {
-re "$mi_gdb_prompt$" { }
default {
perror "gdb_init_command for target failed";
- return -1;
+ return -1
}
}
}
-re "${run_match}\\^running\[\r\n\]+\\*running,thread-id=\"\[^\"\]+\"\r\n$mi_gdb_prompt" {}
default {}
}
- return 0;
+ return 0
}
if [target_info exists gdb,start_symbol] {
gdb_expect {
-re "\\*stopped,${r}$any\r\n$prompt_re" {
pass "$test"
- return 0;
+ return 0
}
-re ".*\r\n$mi_gdb_prompt$" {
verbose -log "got $expect_out(buffer)"
"set language to \"objective-c\""] {
return 0
}
- return 1;
+ return 1
}
"set language to \"pascal\""] {
return 0
}
- return 1;
+ return 1
}
verbose "Spawning $GDB $INTERNAL_GDBFLAGS $GDBFLAGS"
if [info exists gdb_spawn_id] {
- return 0;
+ return 0
}
if ![is_remote host] {
set res [remote_spawn host "$GDB $INTERNAL_GDBFLAGS $GDBFLAGS [host_info gdb_opts]"];
if { $res < 0 || $res == "" } {
perror "Spawning $GDB failed."
- return 1;
+ return 1
}
gdb_expect 360 {
-re ".*$gdb_prompt_fail.*$gdb_prompt_fail.*" {
}
}
set gdb_spawn_id -1;
- return 0;
+ return 0
}
#
gdb_expect 5 {
-re "No tracepoint number .*$gdb_prompt $" {
fail $testname
- return 1;
+ return 1
}
-re "Enter actions for tracepoint $tracepoint.*>" {
if { [llength $args] > 0 } {
$passfail $testname;
}
if { $passfail == "pass" } then {
- return 0;
+ return 0
} else {
- return 1;
+ return 1
}
}
}
$passfail "$testname";
if { $passfail == "pass" } then {
- return 0;
+ return 0
} else {
- return 1;
+ return 1
}
}
-re "$gdb_prompt $" { }
default { }
}
- return $result;
+ return $result
}
#
if { $tracepoint != "" } {
gdb_test "trace $tracepoint" "" ""
}
- return [gdb_readexpr "\$tpnum"];
+ return [gdb_readexpr "\$tpnum"]
}
-re "$gdb_prompt $" { }
default { }
}
- return $baseline;
+ return $baseline
}
# Return the location of the IPA library.