From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 14389 invoked by alias); 17 Dec 2013 09:04:33 -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 14380 invoked by uid 89); 17 Dec 2013 09:04:32 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=1.5 required=5.0 tests=AWL,BAYES_00,GARBLED_BODY autolearn=no version=3.3.2 X-HELO: relay1.mentorg.com Received: from relay1.mentorg.com (HELO relay1.mentorg.com) (192.94.38.131) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 17 Dec 2013 09:04:31 +0000 Received: from svr-orw-exc-10.mgc.mentorg.com ([147.34.98.58]) by relay1.mentorg.com with esmtp id 1VsqZn-0005fF-0m from Yao_Qi@mentor.com ; Tue, 17 Dec 2013 01:04:27 -0800 Received: from SVR-ORW-FEM-03.mgc.mentorg.com ([147.34.97.39]) by SVR-ORW-EXC-10.mgc.mentorg.com with Microsoft SMTPSVC(6.0.3790.4675); Tue, 17 Dec 2013 01:04:26 -0800 Received: from qiyao.dyndns.org (147.34.91.1) by svr-orw-fem-03.mgc.mentorg.com (147.34.97.39) with Microsoft SMTP Server id 14.2.247.3; Tue, 17 Dec 2013 01:04:24 -0800 Message-ID: <52B01328.8030707@codesourcery.com> Date: Tue, 17 Dec 2013 09:04:00 -0000 From: Yao Qi User-Agent: Mozilla/5.0 (X11; Linux i686; rv:17.0) Gecko/20130110 Thunderbird/17.0.2 MIME-Version: 1.0 To: Pedro Alves CC: Subject: Re: [PATCH] "tfind" across unavailable-stack frames. References: <1366214779.30939.1@abidh-ubunto1104> <516F11B9.8030202@redhat.com> <52AB48B6.6040206@redhat.com> <52ABF8D7.1050805@codesourcery.com> <52AF27F7.2060500@redhat.com> In-Reply-To: <52AF27F7.2060500@redhat.com> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8bit X-IsSubscribed: yes X-SW-Source: 2013-12/txt/msg00614.txt.bz2 On 12/17/2013 12:19 AM, Pedro Alves wrote: > In case of trace frame debugging, I don't think you can ever > have a tailcall frame on top of a frame with unavailable > stack, because dwarf2_tailcall_sniffer_first will throw > an error computing prev_sp. But even if that would work Right, I find dwarf2_tailcall unwinder isn't selected for some tailcall cases with an unavailable stack. >> > >> > What does the last sentence mean in the comments? >> > > The same comment is in frame_id_build. Re. what is means, see struct frame_id: > > /* The frame's special address. This shall be constant through out the > lifetime of the frame. This is used for architectures that may have > frames that do not change the stack but are still distinct and have > some form of distinct identifier (e.g. the ia64 which uses a 2nd > stack for registers). This field is treated as unordered - i.e. will > not be used in frame ordering comparisons. > > This field is valid only if special_addr_p is true. Otherwise, this > frame is considered to have a wildcard special address, i.e. one that > ^^^^^^^^^^^^^ > matches every address value in frame comparisons. */ > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > CORE_ADDR special_addr; The last sentence, especially "wildcard" stuff, is still confusing to me. Go through the usage of "special_addr", looks "special_addr" is used only if "special_addr_p" is true. Comment "This field is valid only if special_addr_p is true" is clear and sufficient. I don't see any extra information the last sentence "Otherwise, xxxxx" delivered except confusion. -- Yao (齐尧)