From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 23507 invoked by alias); 14 Dec 2013 06:23:09 -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 23491 invoked by uid 89); 14 Dec 2013 06:23:07 -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; Sat, 14 Dec 2013 06:23:07 +0000 Received: from svr-orw-exc-10.mgc.mentorg.com ([147.34.98.58]) by relay1.mentorg.com with esmtp id 1Vricx-0002n0-3L from Yao_Qi@mentor.com ; Fri, 13 Dec 2013 22:23:03 -0800 Received: from SVR-ORW-FEM-02.mgc.mentorg.com ([147.34.96.206]) by SVR-ORW-EXC-10.mgc.mentorg.com with Microsoft SMTPSVC(6.0.3790.4675); Fri, 13 Dec 2013 22:23:03 -0800 Received: from qiyao.dyndns.org (147.34.91.1) by svr-orw-fem-02.mgc.mentorg.com (147.34.96.168) with Microsoft SMTP Server id 14.2.247.3; Fri, 13 Dec 2013 22:23:02 -0800 Message-ID: <52ABF8D7.1050805@codesourcery.com> Date: Sat, 14 Dec 2013 06:23: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> In-Reply-To: <52AB48B6.6040206@redhat.com> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8bit X-IsSubscribed: yes X-SW-Source: 2013-12/txt/msg00552.txt.bz2 On 12/14/2013 01:49 AM, Pedro Alves wrote: > gdb/ > 2013-12-13 Pedro Alves > > * frame.h (enum frame_id_stack_status): New enum. > (struct frame_id) : Adjust comment. > : Delete field, replaced with ... > : ... this new field. > (frame_id_build_unavailable_stack): Declare. > * frame.c (frame_addr_hash, fprint_field, outer_frame_id) > (frame_id_build_special): Adjust. > (frame_id_build_unavailable_stack): New function. > (frame_id_build, frame_id_build_wild): Adjust. > (frame_id_p, frame_id_eq, frame_id_inner): Adjust to take into > account frames with unavailable stack. > > * amd64-tdep.c (amd64_frame_this_id) > (amd64_sigtramp_frame_this_id, amd64_epilogue_frame_this_id): Use > frame_id_build_unavailable_stack. > * dwarf2-frame.c (dwarf2_frame_this_id): Likewise. Do we need to update tailcall_frame_this_id as well? I can't find an easy way to reproduce it on tailcall frame (using gdb.arch/amd64-tailcall-* cases). Patch looks right to me, two nits on comments below, > @@ -169,6 +187,12 @@ extern struct frame_id frame_id_build_special (CORE_ADDR stack_addr, > CORE_ADDR code_addr, > CORE_ADDR special_addr); > > +/* Construct a frame ID representing a frame where the stack address > + exists, but is unavailable. The first parameter is the frame's Remove "first"? since we only have one parameter here. > + constant code address (typically the entry point). The special > + identifier address is set to indicate a wild card. */ > +extern struct frame_id frame_id_build_unavailable_stack (CORE_ADDR code_addr); > + What does the last sentence mean in the comments? -- Yao (齐尧)