diff options
author | Paul Pluzhnikov <ppluzhnikov@google.com> | 2011-03-16 18:16:26 +0000 |
---|---|---|
committer | Paul Pluzhnikov <ppluzhnikov@google.com> | 2011-03-16 18:16:26 +0000 |
commit | c91513d8bcbfd180dbefdb84841661abead0e9c3 (patch) | |
tree | 5dbbcdcb631ec41682ccac12002641b3d360daf5 /gdb/testsuite | |
parent | b37520b6265d8479f34d8ffa36ec1c88d4360734 (diff) | |
download | gdb-c91513d8bcbfd180dbefdb84841661abead0e9c3.zip gdb-c91513d8bcbfd180dbefdb84841661abead0e9c3.tar.gz gdb-c91513d8bcbfd180dbefdb84841661abead0e9c3.tar.bz2 |
ChangeLog:
2011-03-16 Paul Pluzhnikov <ppluzhnikov@google.com>
PR gdb/12528
* dwarf2read.c (noop_record_line): New function.
(dwarf_decode_lines): Ignore line tables for GCd functions.
testsuite/ChangeLog:
2011-03-16 Paul Pluzhnikov <ppluzhnikov@google.com>
PR gdb/12528
* gdb.base/Makefile.in: Adjust EXECUTABLES.
* gdb.base/break-on-linker-gcd-function.exp: New test.
* gdb.base/break-on-linker-gcd-function.cc: New file.
Diffstat (limited to 'gdb/testsuite')
-rw-r--r-- | gdb/testsuite/ChangeLog | 7 | ||||
-rw-r--r-- | gdb/testsuite/gdb.base/Makefile.in | 3 | ||||
-rw-r--r-- | gdb/testsuite/gdb.base/break-on-linker-gcd-function.cc | 32 | ||||
-rw-r--r-- | gdb/testsuite/gdb.base/break-on-linker-gcd-function.exp | 54 |
4 files changed, 95 insertions, 1 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index df52132..6dd9941 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,10 @@ +2011-03-16 Paul Pluzhnikov <ppluzhnikov@google.com> + + PR gdb/12528 + * gdb.base/Makefile.in: Adjust EXECUTABLES. + * gdb.base/break-on-linker-gcd-function.exp: New test. + * gdb.base/break-on-linker-gcd-function.cc: New file. + 2011-03-15 Andreas Tobler <andreast@fgznet.ch> * gdb.base/jit-main.c: Define ElfW for non glibc elf targets. diff --git a/gdb/testsuite/gdb.base/Makefile.in b/gdb/testsuite/gdb.base/Makefile.in index e80209a..72f1ba4 100644 --- a/gdb/testsuite/gdb.base/Makefile.in +++ b/gdb/testsuite/gdb.base/Makefile.in @@ -5,7 +5,8 @@ EXECUTABLES = a2-run advance all-types annota1 annota1-watch_thread_num \ annota3 anon args arrayidx async attach attach-pie-misread \ attach2 auxv bang\! bfp-test bigcore bitfields bitfields2 \ break break-always break-entry break-interp-test breako2 \ - breakpoint-shadow call-ar-st call-rt-st call-sc-t* call-signals \ + breakpoint-shadow break-on-linker-gcd-function \ + call-ar-st call-rt-st call-sc-t* call-signals \ call-strs callexit callfuncs callfwmall charset checkpoint \ chng-syms code_elim1 code_elim2 commands compiler complex \ condbreak consecutive constvars coremaker cursal cvexpr \ diff --git a/gdb/testsuite/gdb.base/break-on-linker-gcd-function.cc b/gdb/testsuite/gdb.base/break-on-linker-gcd-function.cc new file mode 100644 index 0000000..df781ac --- /dev/null +++ b/gdb/testsuite/gdb.base/break-on-linker-gcd-function.cc @@ -0,0 +1,32 @@ +/* This testcase is part of GDB, the GNU debugger. + + Copyright 2011 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/>. + */ + +// Test case for PR gdb/12528 + +void +foo () +{ + // This function is not referenced and should be GCd by the linker + return; // gdb break here +} + +int +main () +{ + return 0; +} diff --git a/gdb/testsuite/gdb.base/break-on-linker-gcd-function.exp b/gdb/testsuite/gdb.base/break-on-linker-gcd-function.exp new file mode 100644 index 0000000..9d0b481 --- /dev/null +++ b/gdb/testsuite/gdb.base/break-on-linker-gcd-function.exp @@ -0,0 +1,54 @@ +# Copyright 2011 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/>. + +# This file is part of the gdb testsuite + +# Test casting, especially between class types or pointer-to-class +# types. + +# This file is part of the gdb testsuite + +if $tracelevel then { + strace $tracelevel +} + +# +# test running programs +# +if { [skip_cplus_tests] } { continue } + +set testfile "break-on-linker-gcd-function" +set srcfile ${testfile}.cc +set binfile ${objdir}/${subdir}/${testfile} + +if [get_compiler_info ${binfile} "c++"] { + return -1; +} + +set additional_flags {-ffunction-sections -Wl,--gc-sections} +if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable \ + [list debug c++ additional_flags=$additional_flags]] != "" } { + untested $srcfile + return -1 +} + +clean_restart $testfile + +# Single hex digit +set xd {[0-9a-f]} + +# This accepts e.g. "Breakpoint 1 at 0x40968a" (fixed GDB) +# but rejects e.g. "Breakpoint 1 at 0x4" (broken GDB). +gdb_test "b [gdb_get_line_number "gdb break here"]" "Breakpoint \[0-9\] at 0x${xd}${xd}+: .*" |