1 # Copyright
2007-2015 Free Software Foundation
, Inc.
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.
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.
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
/>.
16 # Test that breakpoints
on C
++ constructors work
, despite the
17 # fact that gcc generates several versions of constructor function.
19 if { [skip_cplus_tests
] } { continue }
24 if [get_compiler_info
"c++"] {
28 if {[prepare_for_testing $testfile.exp $testfile $srcfile
{debug c
++}]} {
32 if ![runto_main
] then {
33 perror
"couldn't run to breakpoint"
37 #
Set a breakpoint with multiple locations
40 gdb_test
"break 'Derived::Derived(int)'" \
41 "Breakpoint.*at.*: Derived::Derived.int.. \\(2 locations\\).*" \
42 "set-breakpoint at ctor"
44 gdb_breakpoint
[gdb_get_line_number
"set breakpoint here"]
46 gdb_test
"break 'Derived::~Derived()'" \
47 "Breakpoint.*at.*: Derived::~Derived... \\(2 locations\\).*" \
48 "set-breakpoint at dtor"
51 ".*Breakpoint.*Derived.*i=7.*" \
52 "run to breakpoint 1 v1"
54 gdb_continue_to_breakpoint
"set breakpoint here" ".* breakpoint here"
57 ".*Breakpoint.*Derived.*i=15.*" \
58 "run to breakpoint 1 v2"
60 gdb_continue_to_breakpoint
"set breakpoint here" ".* breakpoint here"
63 ".*Breakpoint.*~Derived.*" \
64 "run to breakpoint 3 v1"
67 ".*Breakpoint.*~Derived.*" \
68 "run to breakpoint 3 v2"
71 ".*exited normally.*" \