Home | History | Annotate | Line # | Download | only in gdb.base
      1 # Copyright 2018-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 whether info prog crashes gdb at a catch point in follow-exec-mode new.
     17 
     18 standard_testfile
     19 
     20 if { ![remote_file target exists /bin/ls] } {
     21     unsupported "no ls"
     22     return
     23 }
     24 
     25 if { [prepare_for_testing "failed to prepare" $testfile $srcfile debug] } {
     26     return
     27 }
     28 
     29 proc catch_follow_exec { } {
     30     if { ![runto_main] } {
     31 	return -1
     32     }
     33 
     34     set bpnum ""
     35     gdb_test_multiple "catch exec" "" {
     36 	-wrap -re "Catchpoint ($::decimal) \\\(exec\\\)" {
     37 	    set bpnum $expect_out(1,string)
     38 	}
     39     }
     40     if {$bpnum == ""} {
     41 	return
     42     }
     43 
     44     gdb_test_no_output "set follow-exec-mode new"
     45 
     46     gdb_test "continue" \
     47 	"Thread 2.1 .*hit Catchpoint $bpnum.*"
     48 
     49     set any "\[^\r\n\]*"
     50 
     51     gdb_test "info prog" \
     52 	"Last stopped for thread 2.1 \\\($any\\\)\\..*It stopped at breakpoint $bpnum\\..*"
     53 }
     54 
     55 catch_follow_exec
     56