This is the mail archive of the gdb@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

problem debugging on solaris x86 with gdb-5.3


Hi,

I am running into a bit of a problem debugging an application on Solaris
x86 using GDB version 5.3.  I do not appear to be able to set
breakpoints in shared library code within my application.
Unfortunately, if I build a very simple test application, this problem
does not occur.

The heart of the problem appears to be that GDB cannot correctly
determine the address of class member functions in my application.  For
example, I have a class called "NominalData" whose code is part of a
shared library "libproject.so".  When I ask GDB for the address of that
method, the address output by GDB is not valid.

For example, here is part of the output from "info shared" showing the
library in question...

   (gdb) info shared
   From        To          Syms Read   Shared Object Library
   0xdf904b00  0xdfa2904e  Yes
/home/username/work/project/lib/libproject.so

Now here is the output from the "info address" command, as well as my
attempt to put a breakpoint on a method within that class:

   (gdb) info address NominalData::deserializeXML
   Symbol "NominalData::deserializeXML(SerialStr&)" is a function at
address 0x4225df.

   (gdb) b NominalData::deserializeXML
   Cannot access memory at address 0x4225df

Shouldn't the address of that method be in the range of addresses
allocated to the shared library in which the method resides?  I suspect
that address 0x4225df is in a region of memory that is "off limits" to
me, which is why the breakpoint cannot be set there.

The method is a normal C++ class method, not inline or anything.  It is
implemented in a file called "NominalData.C" which is linked into the
"libproject.so" shared library.

Has anyone ever seen this strange behavior?  Is there anything I can try
to help isolate the problem?

In case it has other usefulness, I have attached the debugger session
script where I started up GDB, stopped at main, dumped out the shared
libraries loaded then tried to set the breakpoint.

I am using GCC version 3.2.1 to build this application, along with the
native Solaris x86 assembler and linker.

Thanks!

---
Tony Wetmore
Solipsys Corporation
mailto:tony dot wetmore at solipsys dot com
http://www.solipsys.com
 
 

Attachment: session.gdb-5.3
Description: Binary data


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]