From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 12690 invoked by alias); 1 Sep 2008 17:03:06 -0000 Received: (qmail 12681 invoked by uid 22791); 1 Sep 2008 17:03:06 -0000 X-Spam-Check-By: sourceware.org Received: from mel.act-europe.fr (HELO mel.act-europe.fr) (212.99.106.210) by sourceware.org (qpsmtpd/0.31) with ESMTP; Mon, 01 Sep 2008 17:02:06 +0000 Received: from localhost (localhost [127.0.0.1]) by filtered-smtp.eu.adacore.com (Postfix) with ESMTP id 151CA290002; Mon, 1 Sep 2008 19:02:04 +0200 (CEST) Received: from mel.act-europe.fr ([127.0.0.1]) by localhost (smtp.eu.adacore.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 2KRj7ksXupdv; Mon, 1 Sep 2008 19:02:03 +0200 (CEST) Received: from province.act-europe.fr (province.act-europe.fr [10.10.0.214]) by mel.act-europe.fr (Postfix) with ESMTP id 57EC1290001 for ; Mon, 1 Sep 2008 19:02:03 +0200 (CEST) Received: by province.act-europe.fr (Postfix, from userid 560) id 43E401672BA; Mon, 1 Sep 2008 19:02:03 +0200 (CEST) Date: Mon, 01 Sep 2008 17:03:00 -0000 From: Jerome Guitton To: gdb-patches@sourceware.org Subject: [RFA/testsuite] stack check Message-ID: <20080901170203.GB226@adacore.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="Yylu36WmvOXNoKYn" Content-Disposition: inline User-Agent: Mutt/1.5.17 (2007-11-01) Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2008-09/txt/msg00007.txt.bz2 --Yylu36WmvOXNoKYn Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-length: 323 Test that GDB is able to get a correct backtrace when the application is compiled with -fstack-check. Related to: http://sourceware.org/ml/gdb-patches/2008-09/msg00005.html 2008-09-01 Jerome Guitton * (stack-checking.c, stack-checking.exp): New testcase. OK to apply? Thanks, - Jerome --Yylu36WmvOXNoKYn Content-Type: text/x-csrc; charset=us-ascii Content-Disposition: attachment; filename="stack-checking.c" Content-length: 389 /* Test file to be compiled with -fstack-check, for testing "bt" against different stack checking prologue sequences. */ int i = 0; void small_frame () { i++; /* set breakpoint here */ } void medium_frame () { char S [16384]; small_frame (); } void big_frame () { char S [524188]; small_frame (); } void main () { small_frame (); medium_frame (); big_frame (); } --Yylu36WmvOXNoKYn Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="stack-checking.exp" Content-length: 1665 # Copyright 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 . if $tracelevel then { strace $tracelevel } set prms_id 0 set bug_id 0 set testfile "stack-checking" set srcfile ${testfile}.c set binfile ${objdir}/${subdir}/${testfile} if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable [concat debug optimize=-fstack-check nowarnings]] != "" } { untested stack-checking.exp return -1 } gdb_exit gdb_start gdb_reinitialize_dir $srcdir/$subdir gdb_load ${binfile} if ![runto_main] then { fail "Can't run to main" return 0 } # Test that the debugger is able to unwind to "main" at the next breakpoint # hit. The frame number of "main" should be passed into MAIN_FRAME_NUMBER." proc backtrace_test {name main_frame_number} { gdb_continue_to_breakpoint "breakpoint for $name" gdb_test "bt" "#${main_frame_number}.*in main ().*" } gdb_breakpoint [gdb_get_line_number "set breakpoint here"] backtrace_test "small frame" "1" backtrace_test "medium frame" "2" backtrace_test "big frame" "2" --Yylu36WmvOXNoKYn--