From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 8400 invoked by alias); 14 Jul 2003 05:35:03 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 8387 invoked from network); 14 Jul 2003 05:35:01 -0000 Received: from unknown (HELO concert.shout.net) (204.253.184.25) by sources.redhat.com with SMTP; 14 Jul 2003 05:35:01 -0000 Received: from duracef.shout.net (duracef.shout.net [204.253.184.12]) by concert.shout.net (8.12.9/8.12.9) with ESMTP id h6E5YwI4027415; Mon, 14 Jul 2003 00:34:58 -0500 Received: from duracef.shout.net (localhost [127.0.0.1]) by duracef.shout.net (8.12.9/8.12.9) with ESMTP id h6E5YwHK012470; Mon, 14 Jul 2003 00:34:58 -0500 Received: (from mec@localhost) by duracef.shout.net (8.12.9/8.12.9/Submit) id h6E5Yw6U012469; Mon, 14 Jul 2003 01:34:58 -0400 Date: Mon, 14 Jul 2003 05:35:00 -0000 From: Michael Elizabeth Chastain Message-Id: <200307140534.h6E5Yw6U012469@duracef.shout.net> To: kettenis@chello.nl Subject: Re: [patch, rfc, 6.0] Change frame predicates to sniffers Cc: ac131313@redhat.com, gdb-patches@sources.redhat.com X-SW-Source: 2003-07/txt/msg00268.txt.bz2 Mark Kettenis writes: > For your testcases, the instructions after the function call are > optimized away. This means that the return address of the called > frame points to the first instruction of the next function. The > prologue analysis is done for this function instead of the function > that actually made the call. Gotcha. > The new prologue analyzer notices that at the first instruction of a > function, the frame-pointer hasn't been setup yet, and the frame > unwinder uses the stack-pointer for unwinding. This fails because we > haven't actually called the function we're analyzing. Aha! This is consistent with the stack dump I attached to pr gdb/1250. gdb picks out a word for the program counter that would be correct if the caller looked like this: func2: call abort push %ebp mov %ebp, %esp This is a good candidate for a standalone test, gdb.base/gdb1250.exp, with a KFAIL in it. I'll write such a test tomorrow. Michael C