diff options
-rw-r--r-- | gdb/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gdb/testsuite/gdb.arch/i386-prologue.c | 21 | ||||
-rw-r--r-- | gdb/testsuite/gdb.arch/i386-prologue.exp | 62 |
3 files changed, 87 insertions, 0 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index f768ccd..f6c999c 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2003-08-10 Mark Kettenis <kettenis@gnu.org> + + * gdb.arch/i386-prologue.c, gdb.arch/i386-prologue.exp: New files. + 2003-08-07 Elena Zannoni <ezannoni@redhat.com> * gdb.base/completion.exp: Remove reduntant completion test diff --git a/gdb/testsuite/gdb.arch/i386-prologue.c b/gdb/testsuite/gdb.arch/i386-prologue.c new file mode 100644 index 0000000..2bc3627 --- /dev/null +++ b/gdb/testsuite/gdb.arch/i386-prologue.c @@ -0,0 +1,21 @@ +void gdb1253 (void); + +int +main (void) +{ + gdb1253 (); + return 0; +} + +/* Relevant part of the prologue from gdb/1253. */ + +asm(".text\n" + " .align 8\n" + "gdb1253:\n" + " pushl %ebp\n" + " xorl %ecx, %ecx\n" + " movl %esp, %ebp\n" + " pushl %edi\n" + " int $0x03\n" + " leave\n" + " ret\n"); diff --git a/gdb/testsuite/gdb.arch/i386-prologue.exp b/gdb/testsuite/gdb.arch/i386-prologue.exp new file mode 100644 index 0000000..48cd1bb --- /dev/null +++ b/gdb/testsuite/gdb.arch/i386-prologue.exp @@ -0,0 +1,62 @@ +# Copyright 2003 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. + +# Please email any bugs, comments, and/or additions to this file to: +# bug-gdb@gnu.org + +# This file is part of the gdb testsuite. + +if $tracelevel { + strace $tracelevel +} + +# Test i386 prologue analyzer. + +set prms_id 0 +set bug_id 0 + +if ![istarget "i?86-*-*"] then { + verbose "Skipping i386 prologue tests." + return +} + +set testfile "i386-prologue" +set srcfile ${testfile}.c +set binfile ${objdir}/${subdir}/${testfile} +if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } { + gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail." +} + +gdb_exit +gdb_start +gdb_reinitialize_dir $srcdir/$subdir +gdb_load ${binfile} + +# +# Run to `main' where we begin our tests. +# + +if ![runto_main] then { + gdb_suppress_tests +} + +# Testcase from gdb/1253. + +gdb_test "continue" "Program received signal SIGTRAP.*" "continue to gdb1253" + +gdb_test "backtrace 10" \ + "#0\[ \t\]*$hex in gdb1253.*\r\n#1\[ \t\]*$hex in main.*" \ + "backtrace in gdb1253" |