# Copyright 2013-2023 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . if {[skip_shlib_tests]} { return 0 } standard_testfile set libfile "dprintf-pendshr" set libsrc $srcdir/$subdir/$libfile.c set lib_sl [standard_output_file $libfile.sl] set lib_opts debug set exec_opts [list debug shlib=$lib_sl] if { [gdb_compile_shlib $libsrc $lib_sl $lib_opts] != "" || [gdb_compile $srcdir/$subdir/$srcfile $binfile executable $exec_opts] != ""} { untested "failed to compile shared library" return -1 } with_test_prefix "without format" { gdb_exit gdb_start gdb_reinitialize_dir $srcdir/$subdir gdb_test "dprintf pendfunc" "Format string required" "missing ,FMT" gdb_test "dprintf pendfunc," "Format string required" "missing FMT" } with_test_prefix "without symbols" { gdb_exit gdb_start gdb_reinitialize_dir $srcdir/$subdir gdb_test \ "dprintf pendfunc1, \"x=%d\\n\", x" \ "Dprintf.*pendfunc1.*pending." \ "set pending dprintf" \ ".*Make dprintf pending.*y or \\\[n\\\]. $" \ "y" gdb_test "info break" \ "Num Type\[ \]+Disp Enb Address\[ \]+What.* \[0-9\]+\[\t \]+dprintf.*keep y.*PENDING.*pendfunc1.*" \ "single pending dprintf info" gdb_load ${binfile} gdb_load_shlib $lib_sl gdb_run_cmd gdb_test "" ".*x=3.*x=4.*x=3.*" "run to resolved dprintf" } clean_restart ${binfile} gdb_load_shlib $lib_sl # # Test setting, querying, and modifying pending breakpoints # gdb_test \ "dprintf pendfunc1, \"x=%d\\n\", x" \ "Dprintf.*pendfunc1.*pending." \ "set pending dprintf" \ ".*Make dprintf pending.*y or \\\[n\\\]. $" \ "y" gdb_test "info break" \ "Num Type\[ \]+Disp Enb Address\[ \]+What.* \[0-9\]+\[\t \]+dprintf.*keep y.*PENDING.*pendfunc1.*" \ "single pending dprintf info" gdb_run_cmd gdb_test "" ".*x=3.*x=4.*x=3.*" "run to resolved dprintf"