OLD | NEW |
1 # Copyright 2008, 2010-2012 Free Software Foundation, Inc. | 1 # Copyright 2008, 2010-2012 Free Software Foundation, Inc. |
2 | 2 |
3 # This program is free software; you can redistribute it and/or modify | 3 # This program is free software; you can redistribute it and/or modify |
4 # it under the terms of the GNU General Public License as published by | 4 # it under the terms of the GNU General Public License as published by |
5 # the Free Software Foundation; either version 3 of the License, or | 5 # the Free Software Foundation; either version 3 of the License, or |
6 # (at your option) any later version. | 6 # (at your option) any later version. |
7 # | 7 # |
8 # This program is distributed in the hope that it will be useful, | 8 # This program is distributed in the hope that it will be useful, |
9 # but WITHOUT ANY WARRANTY; without even the implied warranty of | 9 # but WITHOUT ANY WARRANTY; without even the implied warranty of |
10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
11 # GNU General Public License for more details. | 11 # GNU General Public License for more details. |
12 # | 12 # |
13 # You should have received a copy of the GNU General Public License | 13 # You should have received a copy of the GNU General Public License |
14 # along with this program. If not, see <http://www.gnu.org/licenses/>. | 14 # along with this program. If not, see <http://www.gnu.org/licenses/>. |
15 | 15 |
16 # Test inferior resumption after discarding a hand-called function. | 16 # Test inferior resumption after discarding a hand-called function. |
17 # There are two things to test. | 17 # There are two things to test. |
18 # 1) Inferior stops normally. Upon resumption it should continue normally, | 18 # 1) Inferior stops normally. Upon resumption it should continue normally, |
19 # regardless of whatever signal the hand-called function got. | 19 # regardless of whatever signal the hand-called function got. |
20 # 2) Inferior is stopped at a signal. Upon resumption it should continue | 20 # 2) Inferior is stopped at a signal. Upon resumption it should continue |
21 # with that signal, regardless of whatever the hand-called function did. | 21 # with that signal, regardless of whatever the hand-called function did. |
22 | 22 |
23 if $tracelevel then { | |
24 strace $tracelevel | |
25 } | |
26 | |
27 if [target_info exists gdb,noinferiorio] { | 23 if [target_info exists gdb,noinferiorio] { |
28 verbose "Skipping call-signal-resume.exp because of no fileio capabilities." | 24 verbose "Skipping call-signal-resume.exp because of no fileio capabilities." |
29 continue | 25 continue |
30 } | 26 } |
31 | 27 |
32 if [target_info exists gdb,nosignals] { | 28 if [target_info exists gdb,nosignals] { |
33 verbose "Skipping call-signal-resume.exp because of nosignals." | 29 verbose "Skipping call-signal-resume.exp because of nosignals." |
34 continue | 30 continue |
35 } | 31 } |
36 | 32 |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
96 if { "$frame_number" == "" } { | 92 if { "$frame_number" == "" } { |
97 fail "dummy stack frame number" | 93 fail "dummy stack frame number" |
98 setup_xfail "*-*-*" | 94 setup_xfail "*-*-*" |
99 } else { | 95 } else { |
100 pass "dummy stack frame number" | 96 pass "dummy stack frame number" |
101 } | 97 } |
102 | 98 |
103 # Pop the dummy frame. | 99 # Pop the dummy frame. |
104 gdb_test "frame $frame_number" ".*" | 100 gdb_test "frame $frame_number" ".*" |
105 gdb_test_no_output "set confirm off" | 101 gdb_test_no_output "set confirm off" |
106 gdb_test_no_output "return" | 102 gdb_test "return" "" |
| 103 |
| 104 # Verify there are no remains of the dummy frame. |
| 105 gdb_test_no_output "maintenance print dummy-frames" |
| 106 set test "maintenance info breakpoints" |
| 107 gdb_test_multiple $test $test { |
| 108 -re " call dummy .*\r\n$gdb_prompt $" { |
| 109 » fail $test |
| 110 } |
| 111 -re "\r\n$gdb_prompt $" { |
| 112 » pass $test |
| 113 } |
| 114 } |
107 | 115 |
108 # Resume execution, the program should continue without any signal. | 116 # Resume execution, the program should continue without any signal. |
109 | 117 |
110 gdb_test "break stop_two" "Breakpoint \[0-9\]* at .*" | 118 gdb_test "break stop_two" "Breakpoint \[0-9\]* at .*" |
111 gdb_test "continue" "Breakpoint \[0-9\]*, stop_two.*" \ | 119 gdb_test "continue" "Breakpoint \[0-9\]*, stop_two.*" \ |
112 "continue to breakpoint at stop_two" | 120 "continue to breakpoint at stop_two" |
113 | 121 |
114 # Continue again, we should get a signal. | 122 # Continue again, we should get a signal. |
115 | 123 |
116 gdb_test "continue" "Program received signal .*" \ | 124 gdb_test "continue" "Program received signal .*" \ |
(...skipping 12 matching lines...) Expand all Loading... |
129 setup_xfail "*-*-*" | 137 setup_xfail "*-*-*" |
130 # Need something. | 138 # Need something. |
131 set frame_number 0 | 139 set frame_number 0 |
132 } else { | 140 } else { |
133 pass "dummy stack frame number" | 141 pass "dummy stack frame number" |
134 } | 142 } |
135 | 143 |
136 # Pop the dummy frame. | 144 # Pop the dummy frame. |
137 gdb_test "frame $frame_number" ".*" | 145 gdb_test "frame $frame_number" ".*" |
138 gdb_test_no_output "set confirm off" | 146 gdb_test_no_output "set confirm off" |
139 gdb_test_no_output "return" | 147 gdb_test "return" "" |
140 | 148 |
141 # Continue again, this time we should get to the signal handler. | 149 # Continue again, this time we should get to the signal handler. |
142 | 150 |
143 gdb_test "break handle_signal" "Breakpoint \[0-9\]* at .*" | 151 gdb_test "break handle_signal" "Breakpoint \[0-9\]* at .*" |
144 gdb_test "continue" "Breakpoint \[0-9\]*, handle_signal.*" \ | 152 gdb_test "continue" "Breakpoint \[0-9\]*, handle_signal.*" \ |
145 "continue to breakpoint at handle_signal" | 153 "continue to breakpoint at handle_signal" |
146 | 154 |
147 # Continue one last time, the program should exit normally. | 155 # Continue one last time, the program should exit normally. |
148 | 156 |
149 gdb_test "continue" "$inferior_exited_re normally." \ | 157 gdb_test "continue" "$inferior_exited_re normally." \ |
150 "continue to program exit" | 158 "continue to program exit" |
151 | 159 |
152 return 0 | 160 return 0 |
OLD | NEW |