From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 30508 invoked by alias); 17 Nov 2003 23:38:35 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 30501 invoked from network); 17 Nov 2003 23:38:34 -0000 Received: from unknown (HELO nevyn.them.org) (66.93.172.17) by sources.redhat.com with SMTP; 17 Nov 2003 23:38:34 -0000 Received: from drow by nevyn.them.org with local (Exim 4.24 #1 (Debian)) id 1ALswz-0001x0-QM for ; Mon, 17 Nov 2003 18:38:33 -0500 Date: Mon, 17 Nov 2003 23:38:00 -0000 From: Daniel Jacobowitz To: gdb-patches@sources.redhat.com Subject: Re: [RFA] Testcase for backtrace/1435 Message-ID: <20031117233833.GB12125@nevyn.them.org> Mail-Followup-To: gdb-patches@sources.redhat.com References: <200311172140.hAHLeT4s009208@elgar.kettenis.dyndns.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <200311172140.hAHLeT4s009208@elgar.kettenis.dyndns.org> User-Agent: Mutt/1.5.1i X-SW-Source: 2003-11/txt/msg00371.txt.bz2 On Mon, Nov 17, 2003 at 10:40:29PM +0100, Mark Kettenis wrote: > This adds a testcase for the patch I just submitted. This is > i386-specific, but I don't know how to trick GCC into putting two > functions right after oneother without using assembler. > > OK to check this in? Definitely. Global maintainers don't need approval to add tests to gdb.arch - and it looks correct, too. > > Mark > > > Index: ChangeLog > from Mark Kettenis > > * gdb.arch/i386-unwind.exp: New file. > * gdb.arch/i386-unwind.c: New file. > > Index: gdb.arch/i386-unwind.exp > =================================================================== > RCS file: gdb.arch/i386-unwind.exp > diff -N gdb.arch/i386-unwind.exp > --- /dev/null 1 Jan 1970 00:00:00 -0000 > +++ gdb.arch/i386-unwind.exp 17 Nov 2003 21:38:21 -0000 > @@ -0,0 +1,63 @@ > +# 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 unwinder. > + > +set prms_id 0 > +set bug_id 0 > + > +if ![istarget "i?86-*-*"] then { > + verbose "Skipping i386 unwinder tests." > + return > +} > + > +set testfile "i386-unwind" > +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 for backtrace/1435. > + > +gdb_test "continue" "Program received signal SIGTRAP.*" \ > + "continue past gdb1435" > + > +gdb_test "backtrace 10" \ > + "#1\[ \t]*$hex in gdb1435.*\r\n#2\[ \t\]*$hex in main.*" \ > + "backtrace past gdb1435" > Index: gdb.arch/i386-unwind.c > =================================================================== > RCS file: gdb.arch/i386-unwind.c > diff -N gdb.arch/i386-unwind.c > --- /dev/null 1 Jan 1970 00:00:00 -0000 > +++ gdb.arch/i386-unwind.c 17 Nov 2003 21:38:21 -0000 > @@ -0,0 +1,42 @@ > +/* Unwinder test program. > + > + Copyright 2003 Free Software Foundation, Inc. > + > + This file is part of GDB. > + > + 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. */ > + > +void > +trap (void) > +{ > + asm ("int $0x03"); > +} > + > +/* Make sure that main directly follows a function without an > + epilogue. */ > + > +asm(".text\n" > + " .align 8\n" > + " .globl gdb1435\n" > + "gdb1435:\n" > + " pushl %ebp\n" > + " mov %esp, %ebp\n" > + " call trap\n" > + " .globl main\n" > + "main:\n" > + " pushl %ebp\n" > + " mov %esp, %ebp\n" > + " call gdb1435\n"); > -- Daniel Jacobowitz MontaVista Software Debian GNU/Linux Developer