From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 7604 invoked by alias); 22 Aug 2013 15:41:01 -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 7593 invoked by uid 89); 22 Aug 2013 15:41:00 -0000 X-Spam-SWARE-Status: No, score=-2.7 required=5.0 tests=AWL,BAYES_00,KHOP_THREADED autolearn=ham version=3.3.2 Received: from mel.act-europe.fr (HELO smtp.eu.adacore.com) (194.98.77.210) by sourceware.org (qpsmtpd/0.84/v0.84-167-ge50287c) with ESMTP; Thu, 22 Aug 2013 15:40:59 +0000 Received: from localhost (localhost [127.0.0.1]) by filtered-smtp.eu.adacore.com (Postfix) with ESMTP id 5704A265D7A2; Thu, 22 Aug 2013 17:40:57 +0200 (CEST) Received: from smtp.eu.adacore.com ([127.0.0.1]) by localhost (smtp.eu.adacore.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id heXmmKRkEQy0; Thu, 22 Aug 2013 17:40:57 +0200 (CEST) Received: from ulanbator.act-europe.fr (ulanbator.act-europe.fr [10.10.1.67]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.eu.adacore.com (Postfix) with ESMTPSA id 331A5265D79E; Thu, 22 Aug 2013 17:40:57 +0200 (CEST) Content-Type: text/plain; charset=iso-8859-1 Mime-Version: 1.0 (Mac OS X Mail 6.5 \(1508\)) Subject: Re: [PATCH v3] Windows x64 SEH unwinder From: Tristan Gingold In-Reply-To: <52162DA9.5060108@redhat.com> Date: Thu, 22 Aug 2013 15:41:00 -0000 Cc: "gdb-patches@sourceware.org ml" , Joel Brobecker , Roland Schwingel Content-Transfer-Encoding: 7bit Message-Id: <848C81AC-2171-412B-A6F2-101352933F3E@adacore.com> References: <1357728781-15073-1-git-send-email-brobecker@adacore.com> <1357728781-15073-3-git-send-email-brobecker@adacore.com> <50ED9221.1050504@redhat.com> <9E84DF2D-7AF8-4AA1-A5DF-171EF189A6E7@adacore.com> <50EDA48E.2030406@redhat.com> <66611BA9-4536-42B2-A65C-4EA5DA219E22@adacore.com> <50EEEB3C.9050202@redhat.com> <5BE11EDB-7832-4489-8CB1-6382F5D1D34E@adacore.com> <51F29440.3030808@redhat.com> <6F12353E-D32C-40F0-87BF-AA77FC15BE03@adacore.com> <52162DA9.5060108@redhat.com> To: Pedro Alves X-SW-Source: 2013-08/txt/msg00645.txt.bz2 On Aug 22, 2013, at 5:26 PM, Pedro Alves wrote: > On 08/22/2013 10:33 AM, Tristan Gingold wrote: >> >> after discussion with Roland Schwingel, I have found that the patch >> doesn't handle well dwarf3 DW_OP_call_frame_cfa, because the SEH >> unwinder is before the dwarf2 one. > > Can you clarify this a little better for the archives? Sure. > So that mean that for binaries built before that gcc fix, > the SEH unwinder won't kick in at all, right? No. If dwarf2 info are presents, they will be used to unwind the frames. If they aren't, unwinding will probably fail. > Then, > how come this fixes Roland's age old issue, and improves > unwinding for him? For the part compiled with gcc, the patch shouldn't change anything. But for function compiled by MS compilers (those in dll), gdb will now unwind their frame by using the SEH unwinder, > In the previous versions, there was talk about needing > finer ordering of the unwinders in order to support both > old and new binaries. What changed? Why is this okay > now? Unwinding was possible when compiled with -g. It is still possible. Version 1 and 2 of the patch failed, because the dwarf unwinder was never used (always masked by the SEH unwinder). It is still possible that gdb with support for SEH unwinder fails where gdb without for binaries produced by old gcc for the cases where the prologue analyzer using heuristic was correct. But debugging with this unwinder isn't reliable. Hopes it clarifies :-) Tristan.