From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 30030 invoked by alias); 6 Aug 2010 17:51:16 -0000 Received: (qmail 29927 invoked by uid 22791); 6 Aug 2010 17:51:15 -0000 X-SWARE-Spam-Status: No, hits=-2.1 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,RCVD_IN_DNSWL_NONE X-Spam-Check-By: sourceware.org Received: from mail-pz0-f41.google.com (HELO mail-pz0-f41.google.com) (209.85.210.41) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 06 Aug 2010 17:51:10 +0000 Received: by pzk33 with SMTP id 33so6449894pzk.0 for ; Fri, 06 Aug 2010 10:51:08 -0700 (PDT) Received: by 10.142.207.5 with SMTP id e5mr10694835wfg.229.1281117068804; Fri, 06 Aug 2010 10:51:08 -0700 (PDT) Received: from [10.10.1.101] (adsl-75-2-129-240.dsl.pltn13.sbcglobal.net [75.2.129.240]) by mx.google.com with ESMTPS id 33sm1695669wfg.9.2010.08.06.10.51.07 (version=TLSv1/SSLv3 cipher=RC4-MD5); Fri, 06 Aug 2010 10:51:08 -0700 (PDT) Message-ID: <4C5C4B8A.7090303@gmail.com> Date: Fri, 06 Aug 2010 17:51:00 -0000 From: Bruce Korb User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.11) Gecko/20100714 SUSE/3.0.6 Thunderbird/3.0.6 MIME-Version: 1.0 To: David Daney CC: gcc@gcc.gnu.org, bug-gdb@gnu.org, insight@sourceware.org Subject: Re: Bizarre GCC problem - how do I debug it? References: <4C5C4433.60302@gmail.com> <4C5C453D.4090704@caviumnetworks.com> In-Reply-To: <4C5C453D.4090704@caviumnetworks.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Mailing-List: contact insight-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: insight-owner@sourceware.org X-SW-Source: 2010-q3/txt/msg00019.txt.bz2 On 08/06/10 10:24, David Daney wrote: > On 08/06/2010 10:19 AM, Bruce Korb wrote: >> The problem seems to be that GDB thinks all the code belongs to a >> single line of text. At first, it was a file of mine, so I presumed >> I had done something strange and passed it off. I needed to do some >> more debugging again and my "-g -O0" output still said all code >> belonged to that one line. So, I made a .i file and compiled that. >> Different file, but the same problem. The .i file contains the >> correct preprocessor directives: >> >> # 309 "wrapup.c" >> static void >> done_check(void) >> { >> >> but under gdb: >> >> (gdb) b done_check >> Breakpoint 5 at 0x40af44: file /usr/include/gmp.h, line 1661. >> >> the break point *is* on the entry to "done_check", but the >> source code displayed is line 1661 of gmp.h. Not helpful. >> Further, I cannot set break points on line numbers because >> all code belongs to the one line in gmp.h. >> >> Yes, for now I can debug in assembly code, but it isn't very easy..... >> >> $ gcc --version >> gcc (SUSE Linux) 4.5.0 20100604 [gcc-4_5-branch revision 160292] >> Copyright (C) 2010 Free Software Foundation, Inc. >> This is free software; see the source for copying conditions. There >> is NO >> warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR >> PURPOSE. >> >> I've googled for: gcc|gdb wrong source file >> which only yields how to examine source files in gdb. >> > > Which version of GDB? > > IIRC with GCC-4.5 you need a very new version of GDB. This page: > > http://gcc.gnu.org/gcc-4.5/changes.html > > indicates that GDB 7.0 or later would be good candidates. That seems to work. There are one or two or three bugs then. Either gdb needs to recognize an out of sync object code, or else gcc needs to produce object code that forces gdb to object in a way more obvious than just deciding upon the wrong file and line -- or both. I simply installed the latest openSuSE and got whatever was supplied. It isn't reasonable to expect folks to go traipsing through upstream web sites looking for "changes.html" files .... And, of course, the insight stuff needs to incorporate the latest and greatest gdb. (I don't use ddd because it is _completely_ non- intuitive.)