From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 17285 invoked by alias); 23 Aug 2004 19:05:15 -0000 Mailing-List: contact gdb-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sources.redhat.com Received: (qmail 17276 invoked from network); 23 Aug 2004 19:05:14 -0000 Received: from unknown (HELO granger.mail.mindspring.net) (207.69.200.148) by sourceware.org with SMTP; 23 Aug 2004 19:05:14 -0000 Received: from user-119a90a.biz.mindspring.com ([66.149.36.10] helo=berman.michael-chastain.com) by granger.mail.mindspring.net with esmtp (Exim 3.33 #1) id 1BzK7y-0001dj-00; Mon, 23 Aug 2004 15:05:10 -0400 Received: from mindspring.com (localhost [127.0.0.1]) by berman.michael-chastain.com (Postfix) with SMTP id BB5034B102; Mon, 23 Aug 2004 15:05:24 -0400 (EDT) Date: Mon, 23 Aug 2004 19:05:00 -0000 From: Michael Chastain To: eliz@gnu.org, ddaney@avtrex.com, cagney@gnu.org Subject: Re: Unable to step over (n and ni) on mipsel-linux... Cc: gdb@sources.redhat.com Message-ID: <412A3FF4.nailCRF28XFLA@mindspring.com> References: <412649F4.9040002@avtrex.com> <412A25B1.7080308@gnu.org> <412A30E5.9080809@avtrex.com> In-Reply-To: <412A30E5.9080809@avtrex.com> User-Agent: nail 10.8 6/28/04 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-SW-Source: 2004-08/txt/msg00291.txt.bz2 David Daney wrote: > By compiler dependant, do you mean the compiler GDB was built with, or > the one that compiled the target code? This question comes up a lot -- I think it's underdocumented, so I'll take a TODO item to write some more documentation on it. Here's a brain dump. David, you know half this stuff already, I'm just collecting it into one place. === The version of GDB is important. The compiler that GDB was built with is important if: . gdb fails to build . a test in gdb.gdb/*.exp is the issue If gdb builds successfully, and you're not running one of the tests in gdb.gdb (which tests the gdb executable itself), then the compiler that built GDB usually does not influence GDB's behavior at run-time. GDB is just a big C program. If a C compiler can compile GDB, it usually compiles it the way we meant it to. The target architecture is always important. The target operating system is always important. The host architecture and the host operating system are of secondary importance. They might be important if the issue involves the remote protocol and the host operating system is unusually weird. The compiler that built the target code is critical! The target compiler is the program that writes all the debugging information which GDB reads. We nearly always need the name and version of the compiler that built the target code. Obviously, the debug flags (-g or -ggdb or -gdwarf-2 or -gstabs+) are critical too. Usually the target assembler and target linker are not important, because the target compiler generates the debugging information and the target assembler and target linker just pass them through. GDB is sometimes sensitive to the target linker for issues with shared libraries. The target's standard C library is important if the problem involves threads or the problem involves backtracing through the standard library.