"Cannot access memory at address 0x175f80"

Andrew Greenlaw andrewg@agere.com
Fri Sep 26 17:46:00 GMT 2003


  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.

    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!
   

-- 
          Andrew Greenlaw
****




More information about the Gdb mailing list