diff options
author | Daniel Jacobowitz <drow@false.org> | 2007-07-31 19:58:40 +0000 |
---|---|---|
committer | Daniel Jacobowitz <drow@false.org> | 2007-07-31 19:58:40 +0000 |
commit | e48883f7911b90ba2b9af24705be25a0289db16a (patch) | |
tree | 7b2af36ecd822f93000c73daf9532025d72a569d /gdb/testsuite/gdb.base/prologue.exp | |
parent | 6b3d9b8313db583e6b6ba5d897bced21f01d81db (diff) | |
download | binutils-gdb-e48883f7911b90ba2b9af24705be25a0289db16a.tar.gz |
* linespec.c (minsym_found): Advance to the next line if possible.
* gdb.base/prologue.c, gdb.base/prologue.exp: New.
* lib/gdb.exp (gdb_breakpoint): Handle "temporary".
Diffstat (limited to 'gdb/testsuite/gdb.base/prologue.exp')
-rw-r--r-- | gdb/testsuite/gdb.base/prologue.exp | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/gdb/testsuite/gdb.base/prologue.exp b/gdb/testsuite/gdb.base/prologue.exp new file mode 100644 index 00000000000..c82934c5954 --- /dev/null +++ b/gdb/testsuite/gdb.base/prologue.exp @@ -0,0 +1,68 @@ +# Test for prologue skipping in minimal symbols with line info. +# Copyright 2007 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 2 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, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +if { [skip_cplus_tests] } { continue } + +set testfile "prologue" +set srcfile ${testfile}.c +set binfile ${objdir}/${subdir}/${testfile} + +if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } { + untested prologue.exp + return -1 +} + +gdb_exit +gdb_start +gdb_reinitialize_dir $srcdir/$subdir +gdb_load ${binfile} + +if ![runto_main] then { + perror "couldn't run to breakpoint" + continue +} + +proc find_breakpoint_pc { sym } { + global decimal hex gdb_prompt + + if { [gdb_breakpoint $sym temporary] } { + pass "setting breakpoint at $sym" + } + + gdb_test "continue" "marker \\(.*\\) at.*" "continue to $sym" + + set pc 0 + set msg "reading \$pc: $sym" + gdb_test_multiple "print/x \$pc" $msg { + -re "\\\$$decimal = ($hex)\r\n$gdb_prompt $" { + set pc $expect_out(1,string) + pass $msg + } + } + + return $pc +} + +# GDB would skip the prologue differently when given a symbol with +# debug info than when given a minimal symbol from the symbol table. +# Make sure this is fixed. + +set pc1 [find_breakpoint_pc "marker"] + +set pc2 [find_breakpoint_pc "other"] + +gdb_test "print $pc1 == $pc2" "\\\$$decimal = 1" "same pc from minimal symbol" |