1 # Copyright
2010-2024 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 require allow_ada_tests
20 standard_ada_testfile a
23 set csrcfile $
{srcdir
}/$
{subdir
}/$
{testdir
}/$
{cfile
}.c
24 set cobject
[standard_output_file $
{cfile
}.o
]
26 gdb_compile
"${csrcfile}" "${cobject}" object [list debug]
27 if {[gdb_compile_ada
"${srcfile}" "${binfile}" executable [list debug]] != "" } {
31 clean_restart $
{testfile
}
33 # Run to c_function an verify that the language automatically gets
set to C.
35 gdb_test
"show lang" \
36 "The current source language is \"auto; currently c\"\\."
38 # Now
, insert a breakpoint inside an Ada unit
, using a condition written
39 # in Ada. Even though the current language is
"auto; currently c", we
40 # expect the debugger to
parse the expression using Ada
, because the
41 # current language
mode is auto
, and the breakpoint is inside Ada code.
42 set bp_location
[gdb_get_line_number
"STOP" ${testdir}/mixed.adb]
43 gdb_test
"break mixed.adb:${bp_location} if light = green" \
44 "Breakpoint \[0-9\]* at .*: file (.*/)?mixed.adb, line \[0-9\]*\\."
46 # Now
, continue until we hit the breakpoint.
If the condition is
47 # evaluated correctly
, the first hit will be ignored
, and the debugger
48 # will stop at the second hit only
, when the
"light" argument is equal
51 "Breakpoint \[0-9\]*, mixed\\.break_me \\(light=green\\) at .*"