From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 21943 invoked by alias); 28 Feb 2008 14:17:29 -0000 Received: (qmail 21934 invoked by uid 22791); 28 Feb 2008 14:17:29 -0000 X-Spam-Check-By: sourceware.org Received: from NaN.false.org (HELO nan.false.org) (208.75.86.248) by sourceware.org (qpsmtpd/0.31) with ESMTP; Thu, 28 Feb 2008 14:17:09 +0000 Received: from nan.false.org (localhost [127.0.0.1]) by nan.false.org (Postfix) with ESMTP id 9E5D0983A1; Thu, 28 Feb 2008 14:17:07 +0000 (GMT) Received: from caradoc.them.org (22.svnf5.xdsl.nauticom.net [209.195.183.55]) by nan.false.org (Postfix) with ESMTP id C527998140; Thu, 28 Feb 2008 14:17:02 +0000 (GMT) Received: from drow by caradoc.them.org with local (Exim 4.69) (envelope-from ) id 1JUjZE-00033w-SZ; Thu, 28 Feb 2008 09:17:00 -0500 Date: Thu, 28 Feb 2008 14:17:00 -0000 From: Daniel Jacobowitz To: Vladimir Prus Cc: Greg Law , gdb-patches@sources.redhat.com Subject: Re: SIGSEGV on gdb 6.7* Message-ID: <20080228141700.GB8988@caradoc.them.org> Mail-Followup-To: Vladimir Prus , Greg Law , gdb-patches@sources.redhat.com References: <47A77A6C.8050007@undo-software.com> <1204066487.19253.346.camel@localhost.localdomain> <20080227002617.GA19479@caradoc.them.org> <1204072653.19253.371.camel@localhost.localdomain> <20080227004305.GA29652@caradoc.them.org> <1204073493.19253.382.camel@localhost.localdomain> <20080227005415.GA25935@caradoc.them.org> <1204074335.19253.390.camel@localhost.localdomain> <47C5C684.8010404@undo-software.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.17 (2007-12-11) X-IsSubscribed: yes 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-02/txt/msg00470.txt.bz2 On Thu, Feb 28, 2008 at 10:15:35AM +0300, Vladimir Prus wrote: > This patch cause testsuite regressions for me, as follows: > > FAIL: gdb.base/annota1.exp: continue to printf > FAIL: gdb.base/annota1.exp: send SIGUSR1 > FAIL: gdb.base/annota1.exp: signal sent > FAIL: gdb.cp/annota2.exp: continue to exit > FAIL: gdb.cp/annota2.exp: watch triggered on a.x > > This is Kubuntu 7.10 Gutsy, and gcc version is: > > gcc version 4.1.3 20070929 (prerelease) (Ubuntu 4.1.2-16ubuntu2) > > JFYI -- I'm not sure we should bother about annotations. My fault. These are easy to fix, as attached. I'll check this in shortly. -- Daniel Jacobowitz CodeSourcery 2008-02-28 Daniel Jacobowitz * frame.c (reinit_frame_cache): Only annotate if frames were previously valid. 2008-02-28 Daniel Jacobowitz * gdb.base/annota1.exp, gdb.cp/annota2.exp: Update for fewer frames-invalid annotations. Index: frame.c =================================================================== RCS file: /cvs/src/src/gdb/frame.c,v retrieving revision 1.236 diff -u -p -r1.236 frame.c --- frame.c 1 Jan 2008 22:53:09 -0000 1.236 +++ frame.c 28 Feb 2008 14:15:46 -0000 @@ -1079,9 +1079,11 @@ reinit_frame_cache (void) obstack_free (&frame_cache_obstack, 0); obstack_init (&frame_cache_obstack); + if (current_frame != NULL) + annotate_frames_invalid (); + current_frame = NULL; /* Invalidate cache */ select_frame (NULL); - annotate_frames_invalid (); if (frame_debug) fprintf_unfiltered (gdb_stdlog, "{ reinit_frame_cache () }\n"); } Index: testsuite/gdb.base/annota1.exp =================================================================== RCS file: /cvs/src/src/gdb/testsuite/gdb.base/annota1.exp,v retrieving revision 1.27 diff -u -p -r1.27 annota1.exp --- testsuite/gdb.base/annota1.exp 26 Feb 2008 08:14:11 -0000 1.27 +++ testsuite/gdb.base/annota1.exp 28 Feb 2008 14:15:46 -0000 @@ -149,7 +149,7 @@ gdb_expect { set binexp [string_to_regexp $binfile] send_gdb "run\n" gdb_expect { - -re "\r\n\032\032post-prompt\r\nStarting program: $binexp \(\r\n\r\n\032\032frames-invalid\)+\(\(\r\n\r\n\032\032frames-invalid\)|\(\r\n\r\n\032\032breakpoints-invalid\)\)*\r\n\r\n\032\032starting\(\r\n\r\n\032\032frames-invalid\)+\(\(\r\n\r\n\032\032frames-invalid\)|\(\r\n\r\n\032\032breakpoints-invalid\)\)*\r\n\r\n\032\032breakpoint 1\r\n\r\nBreakpoint 1, \r\n\032\032frame-begin 0 $hex\r\n\r\n\032\032frame-function-name\r\nmain\r\n\032\032frame-args\r\n \\(\\)\r\n\032\032frame-source-begin\r\n at \r\n\032\032frame-source-file\r\n.*annota1.c\r\n\032\032frame-source-file-end\r\n:\r\n\032\032frame-source-line\r\n$main_line\r\n\032\032frame-source-end\r\n\r\n\r\n\032\032source.*$srcfile:$main_line:.*:beg:$hex\r\n\r\n\032\032frame-end\r\n\r\n\032\032stopped.*$gdb_prompt$" { + -re "\r\n\032\032post-prompt\r\nStarting program: $binexp \(\(\r\n\r\n\032\032frames-invalid\)|\(\r\n\r\n\032\032breakpoints-invalid\)\)+\r\n\r\n\032\032starting\(\(\r\n\r\n\032\032frames-invalid\)|\(\r\n\r\n\032\032breakpoints-invalid\)\)*\r\n\r\n\032\032breakpoint 1\r\n\r\nBreakpoint 1, \r\n\032\032frame-begin 0 $hex\r\n\r\n\032\032frame-function-name\r\nmain\r\n\032\032frame-args\r\n \\(\\)\r\n\032\032frame-source-begin\r\n at \r\n\032\032frame-source-file\r\n.*annota1.c\r\n\032\032frame-source-file-end\r\n:\r\n\032\032frame-source-line\r\n$main_line\r\n\032\032frame-source-end\r\n\r\n\r\n\032\032source.*$srcfile:$main_line:.*:beg:$hex\r\n\r\n\032\032frame-end\r\n\r\n\032\032stopped.*$gdb_prompt$" { pass "run until main breakpoint" } -re ".*$gdb_prompt$" { @@ -466,7 +466,7 @@ if [target_info exists gdb,nosignals] { setup_xfail hppa*-*-hpux11* send_gdb "signal SIGTRAP\n" gdb_expect { - -re ".*\032\032post-prompt\r\nContinuing with signal SIGTRAP.\r\n\r\n\032\032starting\r\n\r\n\032\032frames-invalid\r\n\r\n\032\032frames-invalid\r\n\r\n\032\032signalled\r\n\r\nProgram terminated with signal \r\n\032\032signal-name\r\nSIGTRAP\r\n\032\032signal-name-end\r\n, \r\n\032\032signal-string\r\nTrace.breakpoint trap\r\n\032\032signal-string-end\r\n.\r\nThe program no longer exists.\r\n\r\n\032\032stopped\r\n$gdb_prompt$" \ + -re ".*\032\032post-prompt\r\nContinuing with signal SIGTRAP.\r\n\r\n\032\032starting\r\n\r\n\032\032frames-invalid\r\n\r\n\032\032signalled\r\n\r\nProgram terminated with signal \r\n\032\032signal-name\r\nSIGTRAP\r\n\032\032signal-name-end\r\n, \r\n\032\032signal-string\r\nTrace.breakpoint trap\r\n\032\032signal-string-end\r\n.\r\nThe program no longer exists.\r\n\r\n\032\032stopped\r\n$gdb_prompt$" \ { pass "signal sent" } -re ".*$gdb_prompt$" { fail "signal sent" } timeout { fail "signal sent (timeout)" } Index: testsuite/gdb.cp/annota2.exp =================================================================== RCS file: /cvs/src/src/gdb/testsuite/gdb.cp/annota2.exp,v retrieving revision 1.9 diff -u -p -r1.9 annota2.exp --- testsuite/gdb.cp/annota2.exp 1 Jan 2008 22:53:19 -0000 1.9 +++ testsuite/gdb.cp/annota2.exp 28 Feb 2008 14:15:46 -0000 @@ -122,7 +122,7 @@ gdb_expect { # send_gdb "continue\n" gdb_expect { - -re "\r\n\032\032post-prompt\r\nContinuing.\r\n\r\n\032\032starting\r\n\r\n\032\032frames-invalid\r\na.x is 1\r\n\r\n\032\032frames-invalid\r\n\r\n\032\032exited 0\r\n\r\nProgram exited normally.\r\n\r\n\032\032frames-invalid\r\n\r\n\032\032stopped\r\n$gdb_prompt$" \ + -re "\r\n\032\032post-prompt\r\nContinuing.\r\n\r\n\032\032starting\r\n\r\n\032\032frames-invalid\r\na.x is 1\r\n\r\n\032\032exited 0\r\n\r\nProgram exited normally.\r\n\r\n\032\032stopped\r\n$gdb_prompt$" \ { pass "continue until exit" } -re ".*$gdb_prompt$" { fail "continue to exit" } timeout { fail "continue to exit (timeout)" }