1# Copyright 2017-2024 Free Software Foundation, Inc. 2 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. 7# 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. 12# 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/>. 15 16# Test that "info locals" shows optimized out variables. 17 18load_lib dwarf.exp 19 20# This test can only be run on targets which support DWARF-2 and use gas. 21require dwarf2_support 22 23standard_testfile main.c -dw.S 24 25# Make some DWARF for the test. 26 27set asm_file [standard_output_file $srcfile2] 28Dwarf::assemble $asm_file { 29 global dwarf_regnum regname srcfile 30 31 set buf_var [gdb_target_symbol buf] 32 33 cu {} { 34 DW_TAG_compile_unit { 35 {DW_AT_name $srcfile} 36 {DW_AT_comp_dir /tmp} 37 } { 38 declare_labels int_type_label 39 40 # int 41 int_type_label: base_type { 42 {name "int"} 43 {encoding @DW_ATE_signed} 44 {byte_size 4 DW_FORM_sdata} 45 } 46 47 DW_TAG_subprogram { 48 {MACRO_AT_func { main }} 49 {DW_AT_external 1 flag} 50 } { 51 # A variable completely optimized out. 52 DW_TAG_variable { 53 {name "opt_out"} 54 {type :$int_type_label} 55 } 56 } 57 } 58 } 59} 60 61if { [prepare_for_testing ${testfile}.exp ${testfile} \ 62 [list $srcfile $asm_file] {nodebug}] } { 63 return -1 64} 65 66if ![runto_main] { 67 return -1 68} 69 70# Make sure "info locals" shows optimized out variables. 71gdb_test "info locals" ".*opt_out = <optimized out>.*" "info local shows optimized out variable" 72