This is the mail archive of the
gdb@sources.redhat.com
mailing list for the GDB project.
Re: stepping into a shared object
- From: "Ed Harcourt" <shmooga at hotmail dot com>
- To: kevinb at redhat dot com, gdb at sources dot redhat dot com
- Date: Fri, 17 May 2002 08:58:41 -0400
- Subject: Re: stepping into a shared object
- Bcc:
Kevin,
Thanks for the prompt reply.
> 1) After the library is dlopen'd, are you able to place a breakpoint
> in the shared library and continue to the breakpoint?
No, I can't set a breakpoint anywhere in the shared object. I did some
further experiments and I'm starting to think this may not be a gdb problem
since I can't step into it in dbx either. But dbx gives me an error message
that says:
"cannot find object file corresponding to source f.cpp"
gdb doesn't tell me anything. However, I can step into it in dbx if I build
my .so with the Sun compiler and not g++.
So maybe its a problem with linking the mix and match of Sun object files
and g++ object files. Or maybe I need some other magic switch other than -g
in on gcc or the linker yet that I haven't yet discovered.
> 2) Are you able to step into other types of shared libraries (i.e,
> ones that aren't dlopen'd?
Yes. I tried to create a small testcase of a main compiled with Sun's cc and
a separate .so with g++ and link them. Unfortunately things work fine in
this case. The example that doesn't work is on quite a large system.
Any other hints on what I might try next?
Ed
>From: Kevin Buettner <kevinb@redhat.com>
>To: "Ed Harcourt" <shmooga@hotmail.com>, gdb@sources.redhat.com
>Subject: Re: stepping into a shared object
>Date: Thu, 16 May 2002 15:47:52 -0700
>MIME-Version: 1.0
>Received: from cygnus.com ([205.180.83.203]) by hotmail.com with Microsoft
>SMTPSVC(5.0.2195.4905); Thu, 16 May 2002 15:47:49 -0700
>Received: from romulus.sfbay.redhat.com (remus.sfbay.redhat.com
>[172.16.27.252])by runyon.cygnus.com (8.8.7-cygnus/8.8.7) with ESMTP id
>PAA05642;Thu, 16 May 2002 15:47:54 -0700 (PDT)
>Received: (from kev@localhost)by romulus.sfbay.redhat.com (8.11.6/8.11.6)
>id g4GMlqg19910;Thu, 16 May 2002 15:47:52 -0700
>Message-Id: <1020516224752.ZM19909@localhost.localdomain>
>In-Reply-To: "Ed Harcourt" <shmooga@hotmail.com> "stepping into a
>shared object" (May 16, 3:22pm)
>References: <F169xw8Zw5V6QcqnWwA00003938@hotmail.com>
>X-Mailer: Z-Mail (4.0.1 13Jan97 Caldera)
>Return-Path: kev@redhat.com
>X-OriginalArrivalTime: 16 May 2002 22:47:49.0855 (UTC)
>FILETIME=[B49ACEF0:01C1FD2B]
>
>On May 16, 3:22pm, Ed Harcourt wrote:
>
> > I have a main.c compiled using the Solaris C compiler (not C++). Version
>is
> > Sun WorkShop 6 update 1 C 5.2 2000/09/11.
> >
> > I have C++ objects built using g++ 2.95.2. Everything built with -g. An
> > entry function f is extern "C".
> >
> > I linked the C++ objects and created a mylib.so using the Solaris linker
>ld.
> >
> > main does a dlopen to get at the mylib.so. I can't step into f from
>main.
> >
> > Sound familiar? Or should this work?
>
>It should work.
>
>Here are some things to try:
>
> 1) After the library is dlopen'd, are you able to place a breakpoint
> in the shared library and continue to the breakpoint?
>
> 2) Are you able to step into other types of shared libraries (i.e,
> ones that aren't dlopen'd?
>
>(This won't directly solve your problem, but knowing the answers might
>help us to figure out what's going wrong.)
>
>Kevin
_________________________________________________________________
Send and receive Hotmail on your mobile device: http://mobile.msn.com