OpenCores
URL https://opencores.org/ocsvn/openrisc_2011-10-31/openrisc_2011-10-31/trunk

Subversion Repositories openrisc_2011-10-31

[/] [openrisc/] [tags/] [gdb/] [gdb-6.8/] [gdb-6.8.openrisc-2.1/] [gdb/] [testsuite/] [gdb.base/] [annota3.exp] - Diff between revs 24 and 33

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 24 Rev 33
# Copyright 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
# Copyright 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# 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
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
# (at your option) any later version.
#
#
# This program is distributed in the hope that it will be useful,
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
# GNU General Public License for more details.
#
#
# You should have received a copy of the GNU General Public License
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see .
# along with this program.  If not, see .
# This file was written by Elena Zannoni (ezannoni@cygnus.com)
# This file was written by Elena Zannoni (ezannoni@cygnus.com)
if $tracelevel then {
if $tracelevel then {
    strace $tracelevel
    strace $tracelevel
}
}
# are we on a target board? If so, don't run these tests.
# are we on a target board? If so, don't run these tests.
# note: this is necessary because we cannot use runto_main (which would
# note: this is necessary because we cannot use runto_main (which would
# work for remote targets too) because of the different prompt we get
# work for remote targets too) because of the different prompt we get
# when using annotation level 2.
# when using annotation level 2.
#
#
if [is_remote target] then {
if [is_remote target] then {
    return 0
    return 0
}
}
#
#
# test running programs
# test running programs
#
#
set prms_id 0
set prms_id 0
set bug_id 0
set bug_id 0
set testfile "annota3"
set testfile "annota3"
set srcfile ${testfile}.c
set srcfile ${testfile}.c
set binfile ${objdir}/${subdir}/${testfile}$EXEEXT
set binfile ${objdir}/${subdir}/${testfile}$EXEEXT
if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug nowarnings}] != "" } {
if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug nowarnings}] != "" } {
    untested annota3.exp
    untested annota3.exp
    return -1
    return -1
}
}
gdb_exit
gdb_exit
gdb_start
gdb_start
gdb_reinitialize_dir $srcdir/$subdir
gdb_reinitialize_dir $srcdir/$subdir
gdb_load ${binfile}
gdb_load ${binfile}
if [target_info exists gdb_stub] {
if [target_info exists gdb_stub] {
    gdb_step_for_stub;
    gdb_step_for_stub;
}
}
#
#
# the line at which break main will put the breakpoint
# the line at which break main will put the breakpoint
#
#
set main_line 32
set main_line 32
# The commands we test here produce many lines of output; disable "press
# The commands we test here produce many lines of output; disable "press
#  to continue" prompts.
#  to continue" prompts.
send_gdb "set height 0\n"
send_gdb "set height 0\n"
gdb_expect -re "$gdb_prompt $"
gdb_expect -re "$gdb_prompt $"
#
#
# break at main
# break at main
#
#
gdb_test "break main" \
gdb_test "break main" \
    "Breakpoint.*at.* file .*$srcfile, line.*" \
    "Breakpoint.*at.* file .*$srcfile, line.*" \
    "breakpoint main"
    "breakpoint main"
# NOTE: this prompt is OK only when the annotation level is > 1
# NOTE: this prompt is OK only when the annotation level is > 1
# NOTE: When this prompt is in use the gdb_test procedure cannot be
# NOTE: When this prompt is in use the gdb_test procedure cannot be
# used because it assumes that the last char after the gdb_prompt is a
# used because it assumes that the last char after the gdb_prompt is a
# white space. This is not true with this annotated prompt. So we must
# white space. This is not true with this annotated prompt. So we must
# use send_gdb and gdb_expect or gdb_expect_list.
# use send_gdb and gdb_expect or gdb_expect_list.
set old_gdb_prompt $gdb_prompt
set old_gdb_prompt $gdb_prompt
set gdb_prompt "\r\n\032\032pre-prompt\r\n$gdb_prompt \r\n\032\032prompt\r\n"
set gdb_prompt "\r\n\032\032pre-prompt\r\n$gdb_prompt \r\n\032\032prompt\r\n"
#
#
# set the annotation level to 3
# set the annotation level to 3
#
#
# of course, this will test:
# of course, this will test:
# annotate-pre-prompt
# annotate-pre-prompt
# annotate-prompt
# annotate-prompt
# annotate-post-prompt (in the next block)
# annotate-post-prompt (in the next block)
#
#
send_gdb "set annotate 3\n"
send_gdb "set annotate 3\n"
gdb_expect_list "annotation set at level 3" "\r\n$gdb_prompt$" {
gdb_expect_list "annotation set at level 3" "\r\n$gdb_prompt$" {
    "set annotate 3"
    "set annotate 3"
}
}
#
#
# if construct:
# if construct:
#
#
send_gdb "if 1\n"
send_gdb "if 1\n"
gdb_expect {
gdb_expect {
    -re "^if 1\r\n\r\n\032\032post-prompt\r\n\r\n\032\032pre-commands\r\n >\r\n\032\032commands\r\n$" {
    -re "^if 1\r\n\r\n\032\032post-prompt\r\n\r\n\032\032pre-commands\r\n >\r\n\032\032commands\r\n$" {
        pass "start if construct"
        pass "start if construct"
    }
    }
    -re ".*\032\032commands\r\n" {
    -re ".*\032\032commands\r\n" {
        fail "start if construct"
        fail "start if construct"
    }
    }
    timeout { fail "start if construct (timeout)" }
    timeout { fail "start if construct (timeout)" }
}
}
send_gdb "end\n"
send_gdb "end\n"
gdb_expect {
gdb_expect {
    -re "^end\r\n\r\n\032\032post-commands\r\n$gdb_prompt$" {
    -re "^end\r\n\r\n\032\032post-commands\r\n$gdb_prompt$" {
        pass "end if construct"
        pass "end if construct"
    }
    }
    -re ".*$gdb_prompt$" {
    -re ".*$gdb_prompt$" {
        fail "end if construct"
        fail "end if construct"
    }
    }
    timeout { fail "end if construct (timeout)" }
    timeout { fail "end if construct (timeout)" }
}
}
#
#
# info break:
# info break:
#
#
send_gdb "info break\n"
send_gdb "info break\n"
gdb_expect_list "breakpoint info" "$gdb_prompt$" {
gdb_expect_list "breakpoint info" "$gdb_prompt$" {
    "\r\n\032\032post-prompt\r\n"
    "\r\n\032\032post-prompt\r\n"
    "Num     Type           Disp Enb Address    +What\r\n"
    "Num     Type           Disp Enb Address    +What\r\n"
    "1       breakpoint     keep y   0x\[0-9a-zA-Z\]+ +in main at .*annota3.c:32\r\n"
    "1       breakpoint     keep y   0x\[0-9a-zA-Z\]+ +in main at .*annota3.c:32\r\n"
}
}
#
#
# run to a break point will test:
# run to a break point will test:
#
#
#exp_internal 1
#exp_internal 1
send_gdb "run\n"
send_gdb "run\n"
gdb_expect_list "run until main breakpoint" "$gdb_prompt$" {
gdb_expect_list "run until main breakpoint" "$gdb_prompt$" {
    "\r\n\032\032post-prompt\r\n"
    "\r\n\032\032post-prompt\r\n"
    "Starting program: .*annota3(|\.exe) \r\n"
    "Starting program: .*annota3(|\.exe) \r\n"
    "\r\n\032\032starting\r\n"
    "\r\n\032\032starting\r\n"
    "\r\n\032\032breakpoint 1\r\n"
    "\r\n\032\032breakpoint 1\r\n"
    "\r\n"
    "\r\n"
    "Breakpoint 1, "
    "Breakpoint 1, "
    "\r\n\032\032frame-begin 0 0x\[0-9a-z\]+\r\n"
    "\r\n\032\032frame-begin 0 0x\[0-9a-z\]+\r\n"
    "main \\(\\) at .*annota3.c:32\r\n"
    "main \\(\\) at .*annota3.c:32\r\n"
    "\r\n\032\032source.*annota3.c:32:.*:beg:0x\[0-9a-z\]+\r\n"
    "\r\n\032\032source.*annota3.c:32:.*:beg:0x\[0-9a-z\]+\r\n"
    "\r\n\032\032stopped\r\n"
    "\r\n\032\032stopped\r\n"
}
}
#exp_internal 0
#exp_internal 0
#exit 0
#exit 0
#
#
# Let's do a next, to get to a point where the array is initialized
# Let's do a next, to get to a point where the array is initialized
# We don't care about the annotated output for this operation, it is the same as
# We don't care about the annotated output for this operation, it is the same as
# the one produced by run above
# the one produced by run above
#
#
send_gdb "next\n"
send_gdb "next\n"
gdb_expect_list "go after array init line" "$gdb_prompt$" {
gdb_expect_list "go after array init line" "$gdb_prompt$" {
    "\r\n\032\032post-prompt\r\n"
    "\r\n\032\032post-prompt\r\n"
    "\r\n\032\032starting\r\n"
    "\r\n\032\032starting\r\n"
    "\r\n\032\032source .*annota3.c:\[0-9\]+:\[0-9\]+:beg:0x\[0-9a-z\]+\r\n"
    "\r\n\032\032source .*annota3.c:\[0-9\]+:\[0-9\]+:beg:0x\[0-9a-z\]+\r\n"
    "\r\n\032\032stopped\r\n"
    "\r\n\032\032stopped\r\n"
}
}
#
#
# printing the array:
# printing the array:
#
#
send_gdb "print my_array\n"
send_gdb "print my_array\n"
gdb_expect_list "print array" "$gdb_prompt$" {
gdb_expect_list "print array" "$gdb_prompt$" {
    "\r\n\032\032post-prompt\r\n"
    "\r\n\032\032post-prompt\r\n"
    ".*= .1, 2, 3.\r\n"
    ".*= .1, 2, 3.\r\n"
}
}
#
#
# this should generate an error message, so to test:
# this should generate an error message, so to test:
# annotate-error-begin
# annotate-error-begin
# FIXME: annotate-error not tested
# FIXME: annotate-error not tested
#
#
#exp_internal 1
#exp_internal 1
send_gdb "print non_existent_value\n"
send_gdb "print non_existent_value\n"
gdb_expect_list "print non_existent_value" "$gdb_prompt$" {
gdb_expect_list "print non_existent_value" "$gdb_prompt$" {
    "\r\n\032\032post-prompt\r\n"
    "\r\n\032\032post-prompt\r\n"
    "\r\n\032\032error-begin\r\n"
    "\r\n\032\032error-begin\r\n"
    "No symbol \"non_existent_value\" in current context.\r\n"
    "No symbol \"non_existent_value\" in current context.\r\n"
    "\r\n\032\032error\r\n"
    "\r\n\032\032error\r\n"
}
}
#
#
# break at signal handler
# break at signal handler
#
#
send_gdb "break handle_USR1\n"
send_gdb "break handle_USR1\n"
gdb_expect_list "breakpoint handle_USR1" "$gdb_prompt$" {
gdb_expect_list "breakpoint handle_USR1" "$gdb_prompt$" {
    "\r\n\032\032post-prompt\r\n"
    "\r\n\032\032post-prompt\r\n"
    "Breakpoint.*at 0x\[0-9a-z\]+: file.*annota3.c, line.*\r\n"
    "Breakpoint.*at 0x\[0-9a-z\]+: file.*annota3.c, line.*\r\n"
}
}
#
#
# break at printf. When we are stopped at printf, we can test
# break at printf. When we are stopped at printf, we can test
#
#
send_gdb "break printf\n"
send_gdb "break printf\n"
gdb_expect_list "breakpoint printf" "$gdb_prompt$" {
gdb_expect_list "breakpoint printf" "$gdb_prompt$" {
    "\r\n\032\032post-prompt\r\n"
    "\r\n\032\032post-prompt\r\n"
    "Breakpoint.*at 0x\[0-9a-z\]+.*"
    "Breakpoint.*at 0x\[0-9a-z\]+.*"
}
}
#
#
# get to printf
# get to printf
#
#
send_gdb "continue\n"
send_gdb "continue\n"
gdb_expect_list "continue to printf" "$gdb_prompt$" {
gdb_expect_list "continue to printf" "$gdb_prompt$" {
    "\r\n\032\032post-prompt\r\n"
    "\r\n\032\032post-prompt\r\n"
    "Continuing.\r\n"
    "Continuing.\r\n"
    "\r\n\032\032starting\r\n"
    "\r\n\032\032starting\r\n"
    "\r\n\032\032breakpoint 3\r\n"
    "\r\n\032\032breakpoint 3\r\n"
    "\r\n"
    "\r\n"
    "Breakpoint 3, \[^\r\n\]*\r\n"
    "Breakpoint 3, \[^\r\n\]*\r\n"
    "\r\n\032\032stopped\r\n"
    "\r\n\032\032stopped\r\n"
}
}
send_gdb "backtrace\n"
send_gdb "backtrace\n"
gdb_expect_list "backtrace from shlibrary" "$gdb_prompt$" {
gdb_expect_list "backtrace from shlibrary" "$gdb_prompt$" {
    "\r\n\032\032post-prompt\r\n"
    "\r\n\032\032post-prompt\r\n"
    "#0 .* .*printf \[^\r\n\]*\r\n"
    "#0 .* .*printf \[^\r\n\]*\r\n"
    "#1 .* main \[^\r\n\]*\r\n"
    "#1 .* main \[^\r\n\]*\r\n"
}
}
#
#
# test printing a frame with some arguments:
# test printing a frame with some arguments:
#
#
if [target_info exists gdb,nosignals] {
if [target_info exists gdb,nosignals] {
    unsupported "send SIGUSR1"
    unsupported "send SIGUSR1"
    unsupported "backtrace @ signal handler"
    unsupported "backtrace @ signal handler"
} else {
} else {
    send_gdb "signal SIGUSR1\n"
    send_gdb "signal SIGUSR1\n"
    gdb_expect_list "send SIGUSR1" "$gdb_prompt$" {
    gdb_expect_list "send SIGUSR1" "$gdb_prompt$" {
        "\r\n\032\032post-prompt\r\n"
        "\r\n\032\032post-prompt\r\n"
        "Continuing with signal SIGUSR1.\r\n"
        "Continuing with signal SIGUSR1.\r\n"
        "\r\n\032\032starting\r\n"
        "\r\n\032\032starting\r\n"
        "\r\n\032\032breakpoint 2\r\n"
        "\r\n\032\032breakpoint 2\r\n"
        "\r\n"
        "\r\n"
        "Breakpoint 2, "
        "Breakpoint 2, "
        "\r\n\032\032frame-begin 0 0x\[0-9a-z\]+\r\n"
        "\r\n\032\032frame-begin 0 0x\[0-9a-z\]+\r\n"
        "handle_USR1 \\(sig=\[0-9\]+\\) at .*annota3.c:\[0-9\]+\r\n"
        "handle_USR1 \\(sig=\[0-9\]+\\) at .*annota3.c:\[0-9\]+\r\n"
        "\r\n\032\032source .*annota3.c:\[0-9\]+:\[0-9\]+:beg:0x\[0-9a-z\]+\r\n"
        "\r\n\032\032source .*annota3.c:\[0-9\]+:\[0-9\]+:beg:0x\[0-9a-z\]+\r\n"
        "\r\n\032\032stopped\r\n"
        "\r\n\032\032stopped\r\n"
    }
    }
    #
    #
    # test:
    # test:
    #
    #
    verbose "match_max local is: [match_max]"
    verbose "match_max local is: [match_max]"
    verbose "match_max default is: [match_max -d]"
    verbose "match_max default is: [match_max -d]"
    # This is necessary because a 2000 buffer is not enought to get everything
    # This is necessary because a 2000 buffer is not enought to get everything
    # up to the prompt ad the test gets a timeout.
    # up to the prompt ad the test gets a timeout.
    match_max 3000
    match_max 3000
    verbose "match_max now is: [match_max]"
    verbose "match_max now is: [match_max]"
    send_gdb "backtrace\n"
    send_gdb "backtrace\n"
    gdb_expect_list "backtrace @ signal handler" "$gdb_prompt$" {
    gdb_expect_list "backtrace @ signal handler" "$gdb_prompt$" {
        "#0 +handle_USR1 \[^\r\n\]+\r\n"
        "#0 +handle_USR1 \[^\r\n\]+\r\n"
        "#1 +.signal handler called.\r\n"
        "#1 +.signal handler called.\r\n"
        "#2 .* .*printf \[^\r\n\]+\r\n"
        "#2 .* .*printf \[^\r\n\]+\r\n"
        "#3 .* main \[^\r\n\]+\r\n"
        "#3 .* main \[^\r\n\]+\r\n"
    }
    }
}
}
#
#
# delete all the breakpoints
# delete all the breakpoints
#
#
send_gdb "delete 1\n"
send_gdb "delete 1\n"
gdb_expect_list "delete bp 1" "$gdb_prompt$" {
gdb_expect_list "delete bp 1" "$gdb_prompt$" {
    "\r\n\032\032post-prompt\r\n"
    "\r\n\032\032post-prompt\r\n"
}
}
send_gdb "delete 2\n"
send_gdb "delete 2\n"
gdb_expect_list "delete bp 2" "$gdb_prompt$" {
gdb_expect_list "delete bp 2" "$gdb_prompt$" {
    "\r\n\032\032post-prompt\r\n"
    "\r\n\032\032post-prompt\r\n"
}
}
send_gdb "delete 3\n"
send_gdb "delete 3\n"
gdb_expect_list "delete bp 3" "$gdb_prompt$" {
gdb_expect_list "delete bp 3" "$gdb_prompt$" {
    "\r\n\032\032post-prompt\r\n"
    "\r\n\032\032post-prompt\r\n"
}
}
#
#
# break at main, after value is initialized. This is in preparation
# break at main, after value is initialized. This is in preparation
# to test the annotate output for the display command.
# to test the annotate output for the display command.
#
#
send_gdb "break main\n"
send_gdb "break main\n"
gdb_expect_list "break at 28" "$gdb_prompt$" {
gdb_expect_list "break at 28" "$gdb_prompt$" {
    "\r\n\032\032post-prompt\r\n"
    "\r\n\032\032post-prompt\r\n"
    "Breakpoint 4 at 0x\[0-9a-z\]+: file .*annota3.c, line 32.\r\n"
    "Breakpoint 4 at 0x\[0-9a-z\]+: file .*annota3.c, line 32.\r\n"
}
}
#
#
# display the value
# display the value
#
#
send_gdb "display value\n"
send_gdb "display value\n"
gdb_expect_list "set up display" "$gdb_prompt$" {
gdb_expect_list "set up display" "$gdb_prompt$" {
    "\r\n\032\032post-prompt\r\n"
    "\r\n\032\032post-prompt\r\n"
    "1: value = 7\r\n"
    "1: value = 7\r\n"
}
}
# should ask query. Test annotate-query.
# should ask query. Test annotate-query.
# we don't care about anything else here, only the query.
# we don't care about anything else here, only the query.
send_gdb "run\n"
send_gdb "run\n"
gdb_expect {
gdb_expect {
  -re "pre-query.*already.*\\(y or n\\).*query\r\n" {
  -re "pre-query.*already.*\\(y or n\\).*query\r\n" {
         send_gdb "y\n"
         send_gdb "y\n"
         gdb_expect {
         gdb_expect {
             -re ".*post-query.*$gdb_prompt$" \
             -re ".*post-query.*$gdb_prompt$" \
                     { pass "re-run" }
                     { pass "re-run" }
             -re ".*$gdb_prompt$"  { fail "re-run" }
             -re ".*$gdb_prompt$"  { fail "re-run" }
             timeout { fail "re-run (timeout)" }
             timeout { fail "re-run (timeout)" }
         }
         }
     }
     }
  -re ".*$gdb_prompt$"  { fail "re-run" }
  -re ".*$gdb_prompt$"  { fail "re-run" }
  timeout { fail "re-run (timeout)" }
  timeout { fail "re-run (timeout)" }
}
}
#
#
# Test that breakpoints-invalid is issued once and only once for
# Test that breakpoints-invalid is issued once and only once for
# breakpoint ignore count changes, after annotation stopped.
# breakpoint ignore count changes, after annotation stopped.
# NOTE: breakpoints-invalid annotations have been removed from
# NOTE: breakpoints-invalid annotations have been removed from
# level 3 but keep these tests for continuity and comparison
# level 3 but keep these tests for continuity and comparison
# with annota1.exp.
# with annota1.exp.
send_gdb "break 46\n"
send_gdb "break 46\n"
gdb_expect_list  "break at 46" "$gdb_prompt$" {
gdb_expect_list  "break at 46" "$gdb_prompt$" {
    "\r\n\032\032post-prompt\r\n"
    "\r\n\032\032post-prompt\r\n"
    "Breakpoint 5 at 0x\[0-9a-z\]+: file .*annota3.c, line 46.\r\n"
    "Breakpoint 5 at 0x\[0-9a-z\]+: file .*annota3.c, line 46.\r\n"
}
}
send_gdb "ignore 5 4\n"
send_gdb "ignore 5 4\n"
gdb_expect_list "ignore 5 4" "$gdb_prompt$" {
gdb_expect_list "ignore 5 4" "$gdb_prompt$" {
    "\r\n\032\032post-prompt\r\n"
    "\r\n\032\032post-prompt\r\n"
    "Will ignore next 4 crossings of breakpoint 5"
    "Will ignore next 4 crossings of breakpoint 5"
    "\r\n"
    "\r\n"
}
}
send_gdb "continue\n"
send_gdb "continue\n"
gdb_expect_list "annotate ignore count change" "$gdb_prompt$" {
gdb_expect_list "annotate ignore count change" "$gdb_prompt$" {
    "\r\n\032\032post-prompt\r\n"
    "\r\n\032\032post-prompt\r\n"
    "\r\n\032\032breakpoint 5\r\n"
    "\r\n\032\032breakpoint 5\r\n"
    "\r\n"
    "\r\n"
    "Breakpoint 5, "
    "Breakpoint 5, "
    "\r\n\032\032frame-begin 0 0x\[0-9a-z\]+\r\n"
    "\r\n\032\032frame-begin 0 0x\[0-9a-z\]+\r\n"
    "main \\(\\) at .*annota3.c:46\r\n"
    "main \\(\\) at .*annota3.c:46\r\n"
    "\r\n\032\032source .*annota3.c:46:\[0-9\]+:beg:0x\[0-9a-z\]+\r\n"
    "\r\n\032\032source .*annota3.c:46:\[0-9\]+:beg:0x\[0-9a-z\]+\r\n"
    "1: value = 11\r\n"
    "1: value = 11\r\n"
    "\r\n\032\032stopped\r\n"
    "\r\n\032\032stopped\r\n"
}
}
# check that ignore command is working, or the above can provide
# check that ignore command is working, or the above can provide
# misleading assurance ...
# misleading assurance ...
send_gdb "next\n"
send_gdb "next\n"
gdb_expect_list "next to exit loop" "$gdb_prompt$"  {
gdb_expect_list "next to exit loop" "$gdb_prompt$"  {
    "\r\n\032\032post-prompt\r\n"
    "\r\n\032\032post-prompt\r\n"
    "\r\n\032\032starting\r\n"
    "\r\n\032\032starting\r\n"
    "\r\n\032\032source.*annota3.c:\[0-9\]+:\[0-9\]+:beg:0x\[0-9a-z\]+\r\n"
    "\r\n\032\032source.*annota3.c:\[0-9\]+:\[0-9\]+:beg:0x\[0-9a-z\]+\r\n"
    "1: value = 12\r\n"
    "1: value = 12\r\n"
    "\r\n\032\032stopped\r\n"
    "\r\n\032\032stopped\r\n"
}
}
send_gdb "next\n"
send_gdb "next\n"
gdb_expect_list "breakpoint ignore count" "$gdb_prompt$" {
gdb_expect_list "breakpoint ignore count" "$gdb_prompt$" {
    "\r\n\032\032post-prompt\r\n"
    "\r\n\032\032post-prompt\r\n"
    "\r\n\032\032starting\r\n"
    "\r\n\032\032starting\r\n"
    "\r\n\032\032source.*annota3.c:49:\[0-9\]+:beg:0x\[0-9a-z\]+\r\n"
    "\r\n\032\032source.*annota3.c:49:\[0-9\]+:beg:0x\[0-9a-z\]+\r\n"
    "1: value = 12\r\n"
    "1: value = 12\r\n"
    "\r\n\032\032stopped\r\n"
    "\r\n\032\032stopped\r\n"
}
}
#
#
# Send a signal that is not handled
# Send a signal that is not handled
#
#
# SIGTRAP signals are dropped before they get to the inferior process
# SIGTRAP signals are dropped before they get to the inferior process
# on hpux11.  In theory, this behaivor can be controlled by setting
# on hpux11.  In theory, this behaivor can be controlled by setting
# TTEO_NORM_SIGTRAP in the inferior, but doing so did not cause
# TTEO_NORM_SIGTRAP in the inferior, but doing so did not cause
# the signal to be properly delivered.
# the signal to be properly delivered.
#
#
# It has been verified that other signals will be delivered.  However,
# It has been verified that other signals will be delivered.  However,
# rather than twiddle the test, I choose to leave it as-is as it
# rather than twiddle the test, I choose to leave it as-is as it
# exposes an interesting failure on hpux11.
# exposes an interesting failure on hpux11.
if [target_info exists gdb,nosignals] {
if [target_info exists gdb,nosignals] {
    unsupported "signal sent"
    unsupported "signal sent"
} else {
} else {
    setup_xfail hppa*-*-hpux11*
    setup_xfail hppa*-*-hpux11*
    send_gdb "signal SIGTRAP\n"
    send_gdb "signal SIGTRAP\n"
    gdb_expect_list "signal sent" "$gdb_prompt$" {
    gdb_expect_list "signal sent" "$gdb_prompt$" {
        "\r\n\032\032post-prompt\r\n"
        "\r\n\032\032post-prompt\r\n"
        "Continuing with signal SIGTRAP.\r\n"
        "Continuing with signal SIGTRAP.\r\n"
        "\r\n\032\032starting\r\n"
        "\r\n\032\032starting\r\n"
        "\r\n\032\032signalled\r\n"
        "\r\n\032\032signalled\r\n"
        "\r\nProgram terminated with signal SIGTRAP, Trace.breakpoint trap.\r\n"
        "\r\nProgram terminated with signal SIGTRAP, Trace.breakpoint trap.\r\n"
        "The program no longer exists.\r\n"
        "The program no longer exists.\r\n"
        "\r\n\032\032stopped\r\n"
        "\r\n\032\032stopped\r\n"
    }
    }
}
}
# Check for production of a core file and remove it!
# Check for production of a core file and remove it!
set exec_output [remote_exec build "ls core"]
set exec_output [remote_exec build "ls core"]
set test "cleanup core file"
set test "cleanup core file"
if [ regexp "core not found" $exec_output]  {
if [ regexp "core not found" $exec_output]  {
    pass "$test (not dumped)"
    pass "$test (not dumped)"
} else {
} else {
    if [ regexp "No such file or directory" $exec_output] {
    if [ regexp "No such file or directory" $exec_output] {
        pass "$test (not dumped)"
        pass "$test (not dumped)"
    } else {
    } else {
        remote_exec build "rm -f core"
        remote_exec build "rm -f core"
        pass "$test (removed)"
        pass "$test (removed)"
    }
    }
}
}
# restore the original prompt for the rest of the testsuite
# restore the original prompt for the rest of the testsuite
set gdb_prompt $old_gdb_prompt
set gdb_prompt $old_gdb_prompt
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.