From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 27436 invoked by alias); 13 Mar 2007 00:06:35 -0000 Received: (qmail 27426 invoked by uid 22791); 13 Mar 2007 00:06:34 -0000 X-Spam-Check-By: sourceware.org Received: from mx2.palmsource.com (HELO mx2.palmsource.com) (12.7.175.14) by sourceware.org (qpsmtpd/0.31) with ESMTP; Tue, 13 Mar 2007 00:06:30 +0000 Received: from localhost (localhost [127.0.0.1]) by localhost.domain.tld (Postfix) with ESMTP id 419D31350F3; Mon, 12 Mar 2007 17:06:29 -0700 (PDT) Received: from mx2.palmsource.com ([127.0.0.1]) by localhost (mx2.palmsource.com [127.0.0.1]) (amavisd-new, port 10024) with LMTP id 09282-01-14; Mon, 12 Mar 2007 16:06:28 -0800 (PST) Received: from ussunex01.palmsource.com (unknown [192.168.101.9]) by mx2.palmsource.com (Postfix) with ESMTP id 15C1A1318B9; Mon, 12 Mar 2007 17:06:28 -0700 (PDT) Received: from 192.168.92.92 ([192.168.92.92]) by ussunex01.palmsource.com ([192.168.101.9]) via Exchange Front-End Server owa.palmsource.com ([10.0.20.17]) with Microsoft Exchange Server HTTP-DAV ; Tue, 13 Mar 2007 00:06:27 +0000 Received: from svmsnyderlnx by owa.palmsource.com; 12 Mar 2007 17:06:27 -0700 Subject: Re: Cause of the ?? in backtrace From: Michael Snyder To: Rich Rattanni Cc: gdb@sourceware.org In-Reply-To: <3187bd480703120747h332fbf12gab39d77719c910f9@mail.gmail.com> References: <3187bd480703120747h332fbf12gab39d77719c910f9@mail.gmail.com> Content-Type: text/plain Content-Transfer-Encoding: 7bit Date: Tue, 13 Mar 2007 00:06:00 -0000 Message-Id: <1173744387.11051.24.camel@localhost.localdomain> Mime-Version: 1.0 X-Mailer: Evolution 2.4.1 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/msg00179.txt.bz2 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.