From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 18877 invoked by alias); 26 Sep 2003 18:17:03 -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 18870 invoked from network); 26 Sep 2003 18:17:02 -0000 Received: from unknown (HELO alageremail1.agere.com) (192.19.192.106) by sources.redhat.com with SMTP; 26 Sep 2003 18:17:02 -0000 Received: from alcerelay.agere.com (alcerelay.agere.com [128.94.210.102]) by alageremail1.agere.com (8.11.7+Sun/8.10.2) with ESMTP id h8QIGxB11996; Fri, 26 Sep 2003 14:16:59 -0400 (EDT) Received: from ottmail.agere.com (ottmail.agere.com [135.149.43.31]) by alcerelay.agere.com (8.11.6/8.11.6) with ESMTP id h8QIZb619403; Fri, 26 Sep 2003 14:35:37 -0400 Received: from agere.com by ottmail.agere.com (8.11.7+Sun/AGR-1.0 Solaris) id h8QIGrc04752; Fri, 26 Sep 2003 14:16:54 -0400 (EDT) Message-ID: <3F748295.9090404@agere.com> Date: Fri, 26 Sep 2003 18:39:00 -0000 From: Andrew Greenlaw User-Agent: Mozilla/5.0 (X11; U; SunOS sun4u; en-US; rv:1.0.1) Gecko/20020920 Netscape/7.0 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Daniel Jacobowitz CC: gdb@sources.redhat.com Subject: Re: "Cannot access memory at address 0x175f80" References: <3F747A00.3090302@agere.com> <20030926174934.GB23276@nevyn.them.org> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-SW-Source: 2003-09/txt/msg00327.txt.bz2 I was specifying add-symbol-file, because when I start "orange", none of the symbols from "apple" are accessible. In DDD, the source code for Apple's files don't even appear in the "open source" menu. The only 2 ways to make those files appear are 1) to run the program once, then set breakpoints, then re-run, or 2) use the add-symbol-file command. I admit I wasn't using it in an informed manner, but it worked for the other symbols. I tried a little experiment: I started gdb, used the add-symbol-file command, then entered "break nc_signal_raised". It said "Cannot access memory at address 0x175f9c". I then exited gdb, started over, and this time, instead of add-symbol-file, ran the program. when the program exitted, I typed "break nc_signal_raised", It said "Breakpoint 1 at 0x40fb2f9f: file /sopt/ldv-dev/tools/src/main.cc, line 8.". So that was part of the problem. Now the bad news. If I try to re-run, this particular breakpoint can't be inserted. After that encouraging message above, I hit the "run" button in ddd, and got: (gdb) run snap1 (no debugging symbols found)...Error in re-setting breakpoint 1: Function "nc_signal_raised" not defined. Error in re-setting breakpoint 1: Function "nc_signal_raised" not defined. Error in re-setting breakpoint 1: Function "nc_signal_raised" not defined. Error in re-setting breakpoint 1: Function "nc_signal_raised" not defined. Error in re-setting breakpoint 1: Function "nc_signal_raised" not defined. Error in re-setting breakpoint 1: Function "nc_signal_raised" not defined. Error in re-setting breakpoint 1: Function "nc_signal_raised" not defined. Error in re-setting breakpoint 1: Function "nc_signal_raised" not defined. Error in re-setting breakpoint 1: Function "nc_signal_raised" not defined. ncsim: 05.00-s005: (c) Copyright 1995-2003 Cadence Design Systems, Inc. ncsim: *W,DLNOHV: Unable to find an 'hdl.var' file to load in. Error in re-setting breakpoint 1: Function "nc_signal_raised" not defined. Error in re-setting breakpoint 1: Function "nc_signal_raised" not defined. Error in re-setting breakpoint 1: Function "nc_signal_raised" not defined. Error in re-setting breakpoint 1: Function "nc_signal_raised" not defined. Error in re-setting breakpoint 1: Function "nc_signal_raised" not defined. Error in re-setting breakpoint 1: Function "nc_signal_raised" not defined. Any Ideas? Daniel Jacobowitz wrote: >On Fri, Sep 26, 2003 at 01:40:16PM -0400, Andrew Greenlaw wrote: > > >> Hi. I'm debugging a C++ tool (called apple) that's loaded as a >>dynamic library into a C - or C++ program (called orange) . Apple is >>compiled with g++ 3.3.1, binutils 2.14, and debugging symbols are >>enabled. Orange is a big unknown (meaning: I don't know how it was >>compiled) and it has no debugging symbols. The gdb version is 5.3 >> >> Here are the flags used to compile Apple: >># -gdwarf-2 -g3 used to enable stepping through macro execution under >>gdb 5.3 The explanation's under gdb 5.3 release notes. >> Compile:g++ -std=c++98 -Wall -DLINUX -gdwarf-2 -g3 -D__USE_GNU >>-D_GNU_SOURCE -fPIC file_name.cpp >> >> >> Link: >> g++ -shared $(LIBS) $(OBJSCHEF) $(PLIOBJSVCS_PLI) >>InterfaceObjectVCS_PLI.o -o $@ -lc gdwarf-2 -g3 -fPIC >>g++ -MD -std=c++98 -shared -lc -gdwarf-2 -g3 -fPIC -o >>libapple.so >> >> When I go to debug apple, I run "gdb ", then use the >>"add-symbol-file -readnow" gdb comman to load >>the symbols from apple. From there, I can set breakpoints in C++ class >>methods, no problem. But, there is 1 function (so, non-OO code), where >>if I try to set a breakpoint, I get the following: >> >> (gdb) break nc_signal_raised >>Cannot access memory at address 0x175f80 >> >> If I do an "nm" on the library, I get: >> 00175f80 T nc_signal_raised >> >> Indicating that the address read by gdb is correct. >> >> > >Unlikely, since the library is not loaded at a base address of 0. > > > >> On a related, but less important note, when use ddd to debug & go to >>a source file, I always get: "" is at address 0x10f5f0 >> but contains no code. >> >> And yet I can set breakpoints or step through the code. What's >>going on? >> >> Any help you can offer will be appreciated. I've been working on >>this for 2 weeks, read every posting or piece of documentation I can >>find. I'm at my wits' end! >> >> > >Why are you using add-symbol-file? Is the loader not done as a dlopen, >i.e. are you dealing with something that has its own dynamic loader? >If it's dlopen'd, gdb should automatically handle it. > >It seems unlikely that add-symbol-file without specifying a text offset >is right, too. > > > -- Andrew Greenlaw, Advanced Verification Group Agere Systems of Ottawa, ON. Intranet page: http://ottawa/~andrewg/ E-mail: andrewg@agere.com, Phone: (613)768-8738, Fax: (768)768-8710 **** "A mathematician is a device for turning coffee into theorems." - Paul Erdos ****