[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Debugging with c++ and system libraries



I'm trying to debug a perl module that is an xs interface to a c++ library.

Details of the problem can be found under my name at:

   http://archive.develooper.com/perl-xs%40perl.org/

I'm posting here because I'm wondering what I could install on debian go
get better debugging info when tracing into system libraries with gdb.  I'm
running woody.

Here's the problem in a nutshell:

The module works on some platforms and on others it doesn't, and I've
installed everything from source, except the system libraries (and gdb is a
deb).

Normally:

My perl module is a simply interface to the library.  The c++ library
attempts to open an *optional* config file, if it doesn't exist it throws
an exception.  The exception is caught and ignored (because the config file
is optional).

When it doesn't work:

On my Debian machine, the exception is thrown (I have added cout messages
around the exception constructor), but the catch block is never called.
Instead the program aborts.

If I *override* terminate() in the c++ library with just a function to
print a message, the exception constructor is called, then terminate() is
called twice, then the catch block for the exception runs and the program
exits normally.

It's more complicated, of course.  It only aborts some times on my Debian
machine (never on my SuSE or Solaris 2.6, and always on BSD 4.5).

On Debian it aborts *only* if I run the perl module with PERL_DL_NONLAZY=1,
which is a flag to tell dlopen() to attempt to resolve all external symbols.

Using gdb to single step is not helpful.  I can start at the last line of
the exception constructor, and single setp until the program aborts.  But I
don't see anything of interest.  I assume that's because I have stripped
system libraries.  I assume I need dev libraries, but frankly, I'm not
experienced enough to know what packages I might need to install, and how
to go about debugging with them (other than installing and single stepping
again).

I'm also not clear what damage I might do by installing different system
libraries.

Can anyone offer some advice?


Thanks.




-- 
Bill Moseley
mailto:moseley@hank.org


-- 
To UNSUBSCRIBE, email to debian-user-request@lists.debian.org 
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org



Reply to: