From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 25134 invoked by alias); 23 Nov 2010 21:13:30 -0000 Received: (qmail 25123 invoked by uid 22791); 23 Nov 2010 21:13:29 -0000 X-SWARE-Spam-Status: No, hits=-6.2 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_HI,SPF_HELO_PASS,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Tue, 23 Nov 2010 21:13:06 +0000 Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id oANLD1VM027580 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Tue, 23 Nov 2010 16:13:02 -0500 Received: from ns3.rdu.redhat.com (ns3.rdu.redhat.com [10.11.255.199]) by int-mx11.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id oANLD1iw030821; Tue, 23 Nov 2010 16:13:01 -0500 Received: from opsy.redhat.com (ovpn01.gateway.prod.ext.phx2.redhat.com [10.5.9.1]) by ns3.rdu.redhat.com (8.13.8/8.13.8) with ESMTP id oANLD0qj001699; Tue, 23 Nov 2010 16:13:00 -0500 Received: by opsy.redhat.com (Postfix, from userid 500) id E77E7378885; Tue, 23 Nov 2010 14:12:59 -0700 (MST) From: Tom Tromey To: Brian Heilig Cc: gdb Subject: Re: Assertion Fail: FDE != NULL in Cyclops64 References: <1290438965.1567.22.camel@random> Date: Tue, 23 Nov 2010 21:13:00 -0000 In-Reply-To: <1290438965.1567.22.camel@random> (Brian Heilig's message of "Mon, 22 Nov 2010 10:16:05 -0500") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Mailing-List: contact gdb-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sourceware.org X-SW-Source: 2010-11/txt/msg00086.txt.bz2 >>>>> "Brian" == Brian Heilig writes: Brian> I am receiving an assertion violation, "fde != NULL" on my Cyclops64 Brian> system. This occurs in the function "dwarf2_frame" in "dwarf2_frame.c" Brian> while attempting to single step through memmove. Brian> I found that memmove (and other functions) were not compiled with debug Brian> information. Since these were hand optimized routines in assembly it Brian> would be very difficult to add debugging information. Brian> On a plain Linux test I get "Single stepping until exit from function Brian> foo, which has no line number information." That's what my Cyclops64 Brian> system should do. Brian> When I perform a readelf on my Cyclops64 executable there are holes in Brian> the .debug_frame section where memmove (and the others) should be. It Brian> looks like gdb assumes there are no holes, so I'm guessing the problem Brian> is somewhere in my tool chain. Can someone direct me to the right spot? I am not overly familiar with this code, but I think the logic behind this assert is that we should only end up in dwarf2_frame_cache if a DWARF frame was detected, and the DWARF frame sniffers use dwarf2_frame_find_fde to decide whether this happened. In other words, if the assert trips then that means there is some kind of bug in gdb -- because dwarf2_frame_find_fde returned different results for the same PC. I would probably start by putting a breakpoint in dwarf2_frame_sniffer to see what happens there, or maybe by finding out where the frame comes from in dwarf2_frame_cache. Tom