From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 7904 invoked by alias); 19 Nov 2013 15:43:34 -0000 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 Received: (qmail 7894 invoked by uid 89); 19 Nov 2013 15:43:33 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.7 required=5.0 tests=AWL,BAYES_00,RDNS_NONE,SPF_HELO_PASS,SPF_PASS autolearn=no version=3.3.2 X-HELO: mx1.redhat.com Received: from Unknown (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 19 Nov 2013 15:43:32 +0000 Received: from int-mx12.intmail.prod.int.phx2.redhat.com (int-mx12.intmail.prod.int.phx2.redhat.com [10.5.11.25]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id rAJFhO1T029885 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Tue, 19 Nov 2013 10:43:25 -0500 Received: from barimba (ovpn-113-124.phx2.redhat.com [10.3.113.124]) by int-mx12.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id rAJFhNnJ011564 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NO); Tue, 19 Nov 2013 10:43:24 -0500 From: Tom Tromey To: Pedro Alves Cc: gdb-patches@sourceware.org Subject: Re: [PATCH 1/2] avoid infinite loop with bad debuginfo References: <1384375873-32160-1-git-send-email-tromey@redhat.com> <1384375873-32160-2-git-send-email-tromey@redhat.com> <52850730.1060109@redhat.com> <87d2lxpo1l.fsf@fleche.redhat.com> <528B7F15.7040605@redhat.com> Date: Tue, 19 Nov 2013 15:47:00 -0000 In-Reply-To: <528B7F15.7040605@redhat.com> (Pedro Alves's message of "Tue, 19 Nov 2013 15:09:09 +0000") Message-ID: <87vbzomm78.fsf@fleche.redhat.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-SW-Source: 2013-11/txt/msg00544.txt.bz2 >>>>> "Pedro" == Pedro Alves writes: Pedro> Hmm, I don't think that's the same issue. I'm just talking about Pedro> something like moving the frame_id_eq check to the end of Pedro> get_prev_frame_1, after calling get_prev_frame_raw. Something Pedro> like: Ok, I see now. I think the issue is moot because your dwarf2_frame_cache-recursion branch makes the problem disappear, and because the problem, as I understand it, is that the DWARF unwinding code violates the unwinder contract in a subtle way (this is what your patch fixes). That said, even once your change is in, I think both of these patches should go in. Patch #1 still prevents an infinite loop -- I can probably find another test case -- and patch #2 seems like a straightforward correctness fix. I'll fix up the tests and see what happens. Tom