diff options
author | Ulrich Weigand <uweigand@de.ibm.com> | 2008-05-16 12:58:49 +0000 |
---|---|---|
committer | Ulrich Weigand <uweigand@de.ibm.com> | 2008-05-16 12:58:49 +0000 |
commit | 907fc2026807534a7c2772aac13ab8ab0b42aa92 (patch) | |
tree | 7663e6f23c90bf0f1b2b95373673673da1cb0928 /gdb/testsuite/gdb.base/fixsection.exp | |
parent | 42848c965696a7e9cb46d09b6417212b946ab987 (diff) | |
download | gdb-907fc2026807534a7c2772aac13ab8ab0b42aa92.zip gdb-907fc2026807534a7c2772aac13ab8ab0b42aa92.tar.gz gdb-907fc2026807534a7c2772aac13ab8ab0b42aa92.tar.bz2 |
gdb/
2008-05-15 Pedro Alves <pedro@codesourcery.com>
Ulrich Weigand <uweigand@de.ibm.com>
* minsyms.c (lookup_minimal_symbol_by_pc_name): New function.
* symtab.h (lookup_minimal_symbol_by_pc_name): Add prototype.
* symtab.c (fixup_section): Remove prototype. Add ADDR parameter;
use it instead of ginfo->value.address. Look up minimal symbol by
address and name. Assume OBJFILE is non-NULL.
(fixup_symbol_section): Ensure we always have an objfile to look
into. Extract and pass to fixup_section the symbol's address that
will match the minimal symbol's address.
(fixup_psymbol_section): Likewise.
(find_pc_sect_psymtab): Fall back to non-addrmap case when debugging
overlays and the addrmap returned the wrong section.
* dwarf2read.c (var_decode_location): Set SYMBOL_CLASS before
calling fixup_symbol_section.
gdb/testsuite/
2008-05-15 Pedro Alves <pedro@codesourcery.com>
* gdb.base/fixsection.exp: New file.
* gdb.base/fixsection0.c: New file.
* gdb.base/fixsection1.c: New file.
Diffstat (limited to 'gdb/testsuite/gdb.base/fixsection.exp')
-rw-r--r-- | gdb/testsuite/gdb.base/fixsection.exp | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/gdb/testsuite/gdb.base/fixsection.exp b/gdb/testsuite/gdb.base/fixsection.exp new file mode 100644 index 0000000..8954adc --- /dev/null +++ b/gdb/testsuite/gdb.base/fixsection.exp @@ -0,0 +1,71 @@ +# Copyright (C) 2008 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/>. + +if $tracelevel then { + strace $tracelevel +} + +set prms_id 0 +set bug_id 0 + +if {[skip_shlib_tests]} { + return 0 +} + +set testfile "fixsection" +set srcfile ${srcdir}/${subdir}/${testfile}.c +set binfile ${objdir}/${subdir}/${testfile} + +set libfile "fixsectshr" +set libsrc ${srcdir}/${subdir}/${libfile}.c +set lib_sl ${objdir}/${subdir}/${libfile}.sl + +set lib_opts [list debug nowarnings] +set exec_opts [list debug nowarnings shlib=$lib_sl] + +if [get_compiler_info ${binfile}] { + return -1 +} + +if { [gdb_compile_shlib $libsrc $lib_sl $lib_opts] != "" + || [gdb_compile $srcfile $binfile executable $exec_opts] != ""} { + untested "Could not compile either $libsrc or $srcfile." + return -1 +} + +# Start with a fresh gdb. + +gdb_exit +gdb_start +gdb_reinitialize_dir $srcdir/$subdir +gdb_load ${binfile} +gdb_load_shlibs ${lib_sl} + +if ![runto_main] then { + fail "Can't run to main" + return 1; +} + +# +# set breakpoint at static function static_fun +# +gdb_test "break static_fun" \ + "Breakpoint.*at.* file .*${srcfile}, line.*" \ + "breakpoint at static_fun" + +# +# exit gdb +# +gdb_exit |