This is the mail archive of the
gdb@sources.redhat.com
mailing list for the GDB project.
Re: "Cannot access memory at address 0x175f80"
- From: Daniel Jacobowitz <drow at mvista dot com>
- To: Andrew Greenlaw <andrewg at agere dot com>
- Cc: gdb at sources dot redhat dot com
- Date: Fri, 26 Sep 2003 13:49:34 -0400
- Subject: Re: "Cannot access memory at address 0x175f80"
- References: <3F747A00.3090302@agere.com>
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 <object files> -o
> libapple.so
>
> When I go to debug apple, I run "gdb <program name>", then use the
> "add-symbol-file <apple's path & filename> -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: "<src_file_name>" is at address 0x10f5f0
> <part_of_src_file_name> 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.
--
Daniel Jacobowitz
MontaVista Software Debian GNU/Linux Developer