From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 28547 invoked by alias); 12 Mar 2007 08:32:33 -0000 Received: (qmail 28535 invoked by uid 22791); 12 Mar 2007 08:32:32 -0000 X-Spam-Check-By: sourceware.org Received: from sibelius.xs4all.nl (HELO brahms.sibelius.xs4all.nl) (82.92.89.47) by sourceware.org (qpsmtpd/0.31) with ESMTP; Mon, 12 Mar 2007 08:32:25 +0000 Received: from brahms.sibelius.xs4all.nl (kettenis@localhost.sibelius.xs4all.nl [127.0.0.1]) by brahms.sibelius.xs4all.nl (8.14.0/8.14.0) with ESMTP id l2C8TfsJ016488; Mon, 12 Mar 2007 09:29:42 +0100 (CET) Received: (from kettenis@localhost) by brahms.sibelius.xs4all.nl (8.14.0/8.14.0/Submit) id l2C8Ted5027432; Mon, 12 Mar 2007 09:29:40 +0100 (CET) Date: Mon, 12 Mar 2007 08:32:00 -0000 Message-Id: <200703120829.l2C8Ted5027432@brahms.sibelius.xs4all.nl> From: Mark Kettenis To: drow@false.org CC: rattanni@gmail.com, gdb@sourceware.org, paul@codesourcery.com In-reply-to: <20070312011502.GA29117@caradoc.them.org> (message from Daniel Jacobowitz on Sun, 11 Mar 2007 21:15:02 -0400) Subject: Re: Debugging glibc crashes with GDB References: <3187bd480703111104r46b15863g2d59714f5cc3793e@mail.gmail.com> <20070312011502.GA29117@caradoc.them.org> 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: 2007-03/txt/msg00162.txt.bz2 > Date: Sun, 11 Mar 2007 21:15:02 -0400 > From: Daniel Jacobowitz > > On Sun, Mar 11, 2007 at 02:04:41PM -0400, Rich Rattanni wrote: > > Below you will find the GDB output related to my question. My problem > > is that when I try to debug a program after receiving a glibc abort > > error (MALLOC_CHECK = 2) I cannot backtrace the program to find out > > what piece of my application caused the problem. I can see the call > > to raise and abort, but then I get the error message "Backtrace > > stopped: > > frame did not save the PC". > > I believe this is a known problem with the ARM port of GCC. What GCC > version are you using to build glibc? > > It doesn't save the return address anywhere when it reaches abort; > this is a somewhat limited value optimization. It's a completely stupid optimization. The only reason to call abort() is to make your program crash. And in almost any case you want to look at the core dump afterwards. Someone who cares enough about this should talk to the GCC and/or glibc people to make sure backtraces through abort() work. Mark