diff options
author | Tom de Vries <tdevries@suse.de> | 2020-03-18 14:40:49 +0100 |
---|---|---|
committer | Tom de Vries <tdevries@suse.de> | 2020-03-18 14:40:49 +0100 |
commit | a9933ccf467ac771747db9dba541afdf1b72a3f8 (patch) | |
tree | 97983fe98abdc4edadf7a72ee3b150550a294cb6 /gdb | |
parent | aef397a1548908f82907854a6efc0cd4c0539904 (diff) | |
download | gdb-a9933ccf467ac771747db9dba541afdf1b72a3f8.zip gdb-a9933ccf467ac771747db9dba541afdf1b72a3f8.tar.gz gdb-a9933ccf467ac771747db9dba541afdf1b72a3f8.tar.bz2 |
[gdb/testsuite] Add test-case gdb.dwarf2/break-inline-psymtab.exp
Add a test-case that tests whether we can set a breakpoint on an inlined
inline function in CU for which the partial symtab has not yet been expanded.
Tested on x86_64-linux, with gcc 4.8.5, gcc-7.5.0, gcc-10.0.1, and clang
5.0.2.
gdb/testsuite/ChangeLog:
2020-03-18 Tom de Vries <tdevries@suse.de>
* gdb.dwarf2/break-inline-psymtab-2.c: New test.
* gdb.dwarf2/break-inline-psymtab.c: New test.
* gdb.dwarf2/break-inline-psymtab.exp: New file.
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gdb/testsuite/gdb.dwarf2/break-inline-psymtab-2.c | 33 | ||||
-rw-r--r-- | gdb/testsuite/gdb.dwarf2/break-inline-psymtab.c | 24 | ||||
-rw-r--r-- | gdb/testsuite/gdb.dwarf2/break-inline-psymtab.exp | 36 |
4 files changed, 99 insertions, 0 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index c0b5a3a..ba14abb 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2020-03-18 Tom de Vries <tdevries@suse.de> + + * gdb.dwarf2/break-inline-psymtab-2.c: New test. + * gdb.dwarf2/break-inline-psymtab.c: New test. + * gdb.dwarf2/break-inline-psymtab.exp: New file. + 2020-03-16 Tom de Vries <tdevries@suse.de> * lib/cache.exp (gdb_do_cache): Add and handle local variables diff --git a/gdb/testsuite/gdb.dwarf2/break-inline-psymtab-2.c b/gdb/testsuite/gdb.dwarf2/break-inline-psymtab-2.c new file mode 100644 index 0000000..38c6933 --- /dev/null +++ b/gdb/testsuite/gdb.dwarf2/break-inline-psymtab-2.c @@ -0,0 +1,33 @@ +/* This testcase is part of GDB, the GNU debugger. + + Copyright 2020 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/>. */ + +extern int foo (void); + +int a; + +static inline int +bar (void) +{ + a = 2; + return 0; +} + +int +foo (void) +{ + return bar (); +} diff --git a/gdb/testsuite/gdb.dwarf2/break-inline-psymtab.c b/gdb/testsuite/gdb.dwarf2/break-inline-psymtab.c new file mode 100644 index 0000000..74cea4b --- /dev/null +++ b/gdb/testsuite/gdb.dwarf2/break-inline-psymtab.c @@ -0,0 +1,24 @@ +/* This testcase is part of GDB, the GNU debugger. + + Copyright 2020 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/>. */ + +extern int foo (void); + +int +main (void) +{ + return foo (); +} diff --git a/gdb/testsuite/gdb.dwarf2/break-inline-psymtab.exp b/gdb/testsuite/gdb.dwarf2/break-inline-psymtab.exp new file mode 100644 index 0000000..adbe862 --- /dev/null +++ b/gdb/testsuite/gdb.dwarf2/break-inline-psymtab.exp @@ -0,0 +1,36 @@ +# Copyright 2019-2020 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/>. + +standard_testfile break-inline-psymtab.c break-inline-psymtab-2.c + +set sources [list $srcfile $srcfile2] +set opts {debug optimize=-O2} +if { [prepare_for_testing "failed to prepare" ${testfile} $sources $opts] } { + return -1 +} + +if ![runto_main] { + return -1 +} + +get_compiler_info +get_debug_format +if { [skip_inline_frame_tests] } { + return -1 +} + +# Set a break-point in inline function bar, in a CU for which the partial +# symtab has not been expanded. +gdb_breakpoint "bar" message |