From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 20818 invoked by alias); 13 Mar 2007 03:48:57 -0000 Received: (qmail 20809 invoked by uid 22791); 13 Mar 2007 03:48:56 -0000 X-Spam-Check-By: sourceware.org Received: from an-out-0708.google.com (HELO an-out-0708.google.com) (209.85.132.247) by sourceware.org (qpsmtpd/0.31) with ESMTP; Tue, 13 Mar 2007 03:48:51 +0000 Received: by an-out-0708.google.com with SMTP id c2so1530523anc for ; Mon, 12 Mar 2007 20:48:50 -0700 (PDT) Received: by 10.100.8.18 with SMTP id 18mr246486anh.1173757730240; Mon, 12 Mar 2007 20:48:50 -0700 (PDT) Received: by 10.100.14.9 with HTTP; Mon, 12 Mar 2007 20:48:50 -0700 (PDT) Message-ID: <3187bd480703122048v4b1482f0n1cffd1f473af5193@mail.gmail.com> Date: Tue, 13 Mar 2007 03:48:00 -0000 From: "Rich Rattanni" To: "Michael Snyder" Subject: Re: Cause of the ?? in backtrace Cc: gdb@sourceware.org In-Reply-To: <1173744387.11051.24.camel@localhost.localdomain> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline References: <3187bd480703120747h332fbf12gab39d77719c910f9@mail.gmail.com> <1173744387.11051.24.camel@localhost.localdomain> X-IsSubscribed: yes 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/msg00181.txt.bz2 In order to ensure the library has debug info built into it, do you just need to build the library with the -g option specified during compilation? Or is it more involved? On 3/12/07, Michael Snyder wrote: > On Mon, 2007-03-12 at 10:47 -0400, Rich Rattanni wrote: > > Why would one get the following when trying to do a backtrace in GDB... > > (gdb) bt > > #0 0x403cdcb4 in _int_malloc () from /lib/libc.so.6 > > #1 0x403cedfc in malloc () from /lib/libc.so.6 > > #2 0x401c4418 in sqlite3MallocRaw () from /usr/lib/libsqlite3.so.0 > > #3 0x401c450c in sqlite3StrNDup () from /usr/lib/libsqlite3.so.0 > > #4 0x401cc070 in sqlite3VdbeChangeP3 () from /usr/lib/libsqlite3.so.0 > > #5 0x401cc0ac in sqlite3VdbeOp3 () from /usr/lib/libsqlite3.so.0 > > #6 0x401ac010 in sqlite3CodeSubselect () from /usr/lib/libsqlite3.so.0 > > #7 0x401ab4b0 in sqlite3ExprCode () from /usr/lib/libsqlite3.so.0 > > #8 0x401abd00 in sqlite3ExprIfFalse () from /usr/lib/libsqlite3.so.0 > > #9 0x401d02cc in sqlite3WhereBegin () from /usr/lib/libsqlite3.so.0 > > #10 0x401bf13c in sqlite3Select () from /usr/lib/libsqlite3.so.0 > > #11 0x401b6978 in sqlite3Parser () from /usr/lib/libsqlite3.so.0 > > #12 0x401c12e0 in sqlite3RunParser () from /usr/lib/libsqlite3.so.0 > > #13 0x47de97e0 in ?? () <------------------------------- This > > is my problem > > > Specifically, the ?? means that gdb could not find a symbol to > correspond with the instruction address 0x47de97e0. This might > mean any number of things. > > If the address is legitimate (ie. the return address of sqlite3RunParser > really does point back to a caller at 0x47de97e0), then this caller > may be from a library for which gdb has no symbols. It might be > self-generating code, in which case it may never have had any > symbols. > > Or the address may NOT be legitimate, and may have come about > as a result of a corrupted stack or something. > >