Home | History | Annotate | Line # | Download | only in gdb.go
      1 # This testcase is part of GDB, the GNU debugger.
      2 
      3 # Copyright 2012-2024 Free Software Foundation, Inc.
      4 #
      5 # This program is free software; you can redistribute it and/or modify
      6 # it under the terms of the GNU General Public License as published by
      7 # the Free Software Foundation; either version 3 of the License, or
      8 # (at your option) any later version.
      9 #
     10 # This program is distributed in the hope that it will be useful,
     11 # but WITHOUT ANY WARRANTY; without even the implied warranty of
     12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     13 # GNU General Public License for more details.
     14 #
     15 # You should have received a copy of the GNU General Public License
     16 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
     17 
     18 # Basic tests.
     19 
     20 load_lib "go.exp"
     21 
     22 require allow_go_tests support_go_compile
     23 
     24 standard_testfile .go
     25 
     26 if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile} {debug go}] } {
     27     return -1
     28 }
     29 
     30 set bp_location1 [gdb_get_line_number "set breakpoint 1 here"]
     31 
     32 if { [go_runto_main] < 0 } {
     33     return -1
     34 }
     35 
     36 gdb_test_multiple "print st" "print global var st" {
     37     -re -wrap " = $hex \"We shall\"" {
     38        pass $gdb_test_name
     39     }
     40     -re -wrap " = $hex .*" {
     41        # GCC PR 93844 (Same problem with google go compiler go1.11.13).
     42        # Due to the PR, gdb prints an uninitialized value, which can manifest
     43        # as '$3 = 0x0 ""', but also as printing a wild pointer.
     44        xfail $gdb_test_name
     45     }
     46 }
     47 
     48 if { [gdb_breakpoint ${srcfile}:${bp_location1}] } {
     49     pass "setting breakpoint 1"
     50 }
     51 
     52 gdb_test "cont" "Breakpoint .*:${bp_location1}.*" "going to first breakpoint"
     53 
     54 gdb_test "print st" \
     55     ".* = $hex \"Hello, world!\"" \
     56     "string after assignment check"
     57