1 # Copyright
2011-2019 Free Software Foundation
, Inc.
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
5 # the Free Software Foundation
; either version
3 of the License
, or
6 #
(at your option
) any later version.
8 # This
program is distributed in the hope that it will be useful
,
9 # but WITHOUT
ANY WARRANTY
; without even the implied warranty of
10 # MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the
11 # GNU General Public License
for more details.
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
/>.
18 standard_ada_testfile bla
20 if {[gdb_compile_ada
"${srcfile}" "${binfile}" executable [list debug additional_flags=-gnata ]] != "" } {
24 # Some global variables used to simplify the maintenance of some of
25 # the regular expressions below.
29 # Before going
any further
, verify that we can insert exception
30 # catchpoints... That way
, we won
't have to do this while doing
31 # the actual GDB/MI testing.
33 clean_restart ${testfile}
35 if ![runto_main] then {
36 fail "cannot run to main, testcase aborted"
40 set msg "insert catchpoint on all Ada exceptions"
41 gdb_test_multiple "catch exception" $msg {
42 -re "Catchpoint $decimal: all Ada exceptions$eol$gdb_prompt $" {
45 -re "Your Ada runtime appears to be missing some debugging information.*\[\r\n\]+$gdb_prompt $" {
46 # If the runtime was not built with enough debug information,
47 # or if it was stripped, we can not test exception
54 # Now, we can start the GDB/MI testing itself...
56 load_lib mi-support.exp
65 mi_gdb_reinitialize_dir $srcdir/$subdir
66 mi_gdb_load ${binfile}
68 ###################################################
69 # 2. Try catching conditionnal failed assertion. #
70 ###################################################
72 # Here is the scenario:
73 # - Restart the debugger from scratch, runto_main
74 # We'll catch assertions
if Global_Var
= 2
75 #
- continue, we should see the second failed assertion
76 #
- continue, the
program exits.
78 if ![mi_run_to_main
] then {
79 fail
"cannot run to main, testcase aborted"
83 mi_gdb_test
"-catch-assert -c \"Global_Var = 2\"" \
84 "\\^done,bkptno=\"$decimal\",bkpt={.*disp=\"keep\",enabled=\"y\",addr=\"$hex\",what=\"failed Ada assertions\",.*,cond=\"Global_Var = 2\",.*}" \
85 "catch assert failures with condition"
87 set bp_location
[gdb_get_line_number
"STOP" ${testdir}/bla.adb]
88 mi_execute_to
"exec-continue" \
89 "breakpoint-hit\",disp=\"keep\",bkptno=\"$decimal" \
90 "bla" "" ".*" "$bp_location" \
92 "continue to assert failure catchpoint hit"
95 mi_send_resuming_command
"exec-continue" "continuing to inferior exit"
96 mi_expect_stop
"exited-normally" "" "" "" "" "" "exit normally"