1 # Copyright
2012-2023 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
/>.
16 # Test
"set debug expr 1" on c expressions.
18 # Test relies
on checking gdb debug output.
Do not run
if gdb debug is
19 # enabled as
any debug will be redirected to the
log.
20 require
!gdb_debug_enabled
24 if {[prepare_for_testing
"failed to prepare" $testfile $srcfile {debug}]} {
32 for { set i
0 } { $i
< 4 } { incr i
} {
33 gdb_test_no_output
"set variable array\[$i\] = $i"
36 gdb_test_no_output
"set debug expression 1"
38 # This caused gdb to segfault.
39 gdb_test_debug_expr
"print /x {char\[4\]} array" \
40 "\[$\]$decimal = \\{0x0, 0x1, 0x2, 0x3\\}"
42 # This caused gdb to output garbage and possibly segfault
43 gdb_test_debug_expr
"print \"hello\"" \
44 ".*OP_STRING\[^\r\n\]*.*: ordinary string.*\[\r\n\]\\$$decimal = \"hello\"" \
45 "string evaluation with debug expr"
47 # An expression using a function
call.
48 gdb_test_debug_expr
"print call_me ( &val )" \
49 ".*OP_FUNCALL\[^\r\n\]*.*UNOP_ADDR.*\[\r\n\]\\$$decimal = 0.*" \
50 "function call expression"