1# Test for prologue skipping in minimal symbols with line info. 2# Copyright 2007-2020 Free Software Foundation, Inc. 3 4# This program is free software; you can redistribute it and/or modify 5# it under the terms of the GNU General Public License as published by 6# the Free Software Foundation; either version 3 of the License, or 7# (at your option) any later version. 8# 9# This program is distributed in the hope that it will be useful, 10# but WITHOUT ANY WARRANTY; without even the implied warranty of 11# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12# GNU General Public License for more details. 13# 14# You should have received a copy of the GNU General Public License 15# along with this program. If not, see <http://www.gnu.org/licenses/>. 16 17if { [skip_cplus_tests] } { continue } 18 19standard_testfile .c 20 21if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } { 22 untested "failed to compile" 23 return -1 24} 25 26clean_restart ${binfile} 27 28if ![runto_main] then { 29 perror "couldn't run to breakpoint" 30 continue 31} 32 33proc find_breakpoint_pc { sym } { 34 global decimal hex gdb_prompt 35 36 if { [gdb_breakpoint $sym temporary] } { 37 pass "setting breakpoint at $sym" 38 } 39 40 gdb_test "continue" "marker \\(.*\\) at.*" "continue to $sym" 41 42 set pc 0 43 set msg "reading \$pc: $sym" 44 gdb_test_multiple "print/x \$pc" $msg { 45 -re "\\\$$decimal = ($hex)\r\n$gdb_prompt $" { 46 set pc $expect_out(1,string) 47 pass $msg 48 } 49 } 50 51 return $pc 52} 53 54# GDB would skip the prologue differently when given a symbol with 55# debug info than when given a minimal symbol from the symbol table. 56# Make sure this is fixed. 57 58set pc1 [find_breakpoint_pc "marker"] 59 60set pc2 [find_breakpoint_pc "other"] 61 62gdb_test "print $pc1 == $pc2" "\\\$$decimal = 1" "same pc from minimal symbol" 63