diff options
Diffstat (limited to 'gdb/testsuite/gdb.mi')
-rw-r--r-- | gdb/testsuite/gdb.mi/mi-linespec-err-cp.cc | 35 | ||||
-rw-r--r-- | gdb/testsuite/gdb.mi/mi-linespec-err-cp.exp | 59 |
2 files changed, 94 insertions, 0 deletions
diff --git a/gdb/testsuite/gdb.mi/mi-linespec-err-cp.cc b/gdb/testsuite/gdb.mi/mi-linespec-err-cp.cc new file mode 100644 index 00000000000..19c92d84c6c --- /dev/null +++ b/gdb/testsuite/gdb.mi/mi-linespec-err-cp.cc @@ -0,0 +1,35 @@ +/* This testcase is part of GDB, the GNU debugger. + + Copyright 2016 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 <http://www.gnu.org/licenses/>. */ + +int +myfunction (int aa) +{ + int i; + + i = aa + 42; + return i; /* set breakpoint here */ +} + +int +main (void) +{ + int a; + + a = myfunction (a); + + return a; +} diff --git a/gdb/testsuite/gdb.mi/mi-linespec-err-cp.exp b/gdb/testsuite/gdb.mi/mi-linespec-err-cp.exp new file mode 100644 index 00000000000..34355082270 --- /dev/null +++ b/gdb/testsuite/gdb.mi/mi-linespec-err-cp.exp @@ -0,0 +1,59 @@ +# Copyright 2016 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 <http://www.gnu.org/licenses/>. + +# Regression test for PR breakpoints/18303. Tests that the correct +# errors is generated when setting a breakpoint in a non-existent +# file with a Windows-style logical drive names and C++. + +if {[skip_cplus_tests]} { + continue +} + +load_lib mi-support.exp +set MIFLAGS "-i=mi" + +standard_testfile .cc +set exefile $testfile + +if {[prepare_for_testing $testfile $exefile $srcfile {debug c++}]} { + return -1 +} + +gdb_exit +if {[mi_gdb_start]} { + continue +} + +# Turn off the pending breakpoint queries. +mi_gdb_test "-interpreter-exec console \"set breakpoint pending off\"" \ + {=cmd-param-changed,param=\"breakpoint pending\",.*\^done} \ + "-interpreter-exec console \"set breakpoint pending off\"" + +mi_run_to_main + +# Run to a location in the file. +set bp_location [gdb_get_line_number "set breakpoint here"] + +mi_gdb_test "-break-insert ${srcfile}:${bp_location}" \ + {\^done,bkpt=.number="2",type="breakpoint".*\}} "set breakpoint" + +mi_execute_to "exec-continue" "breakpoint-hit" "myfunction" ".*" ".*" "24" \ + { "" "disp=\"keep\"" } "breakpoint hit" + +# Set a breakpoint in a C++ source file whose name contains a +# Windows-style logical drive. +mi_gdb_test \ + "-break-insert -f \"c:/uu.cpp:13\"" \ + ".*No source file named c:/uu.cpp.*" |