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]

RE: gdb 5.3 bug


I can's say that the bug fixed
but I found how to work around!!!
The problem was that gnu "ld" put "/usr/lib/libc.so.1" in place
of interpreter in executable.
If to use gcc option -Xlinker "--dynamic-linker" -Xlinker /usr/lib/ld.so.1
gdb works fine!

----
Lev Assinovsky
Aelita Software Corporation
O&S Core Division, Programmer
ICQ# 165072909


> -----Original Message-----
> From: Daniel Jacobowitz [mailto:drow at mvista dot com]
> Sent: Wednesday, March 05, 2003 8:24 PM
> To: Lev Assinovsky
> Cc: gdb at sources dot redhat dot com
> Subject: Re: gdb 5.3 bug
> 
> 
> Solaris 2.8 shouldn't need solib-sunos, that's for something much
> older.
> 
> ld.so.1 _should_ contain at least one of those symbols.  I don't know
> which one is appropriate.  It looks like on SPARC Solaris 2.7 it
> has rtld_db_dlactivity.  Are you sure that "nm /lib/ld.so.1 | grep
> rtld_db_dlactivity" doesn't turn up anything?
> 
> On Wed, Mar 05, 2003 at 08:13:14PM +0300, Lev Assinovsky wrote:
> > Also /usr/lib/ld.so.1 doesn't contain any symbol from your list: 
> >  "r_debug_state",
> >  "_r_debug_state",
> >  "_dl_debug_state",
> >  "rtld_db_dlactivity",
> >  "_rtld_debug_state",
> > ----
> > Lev Assinovsky
> > Aelita Software Corporation
> > O&S Core Division, Programmer
> > ICQ# 165072909
> > 
> > 
> > > -----Original Message-----
> > > From: Lev Assinovsky 
> > > Sent: Wednesday, March 05, 2003 7:56 PM
> > > To: Daniel Jacobowitz
> > > Cc: gdb at sources dot redhat dot com
> > > Subject: RE: gdb 5.3 bug
> > > 
> > > 
> > > Is't is OK that configure didn't compile solib-sunos.c?
> > > I caught _DEBUG symbol there which /usr/lib/ld.so.1 also has.
> > > 
> > > ----
> > > Lev Assinovsky
> > > Aelita Software Corporation
> > > O&S Core Division, Programmer
> > > ICQ# 165072909
> > > 
> > > 
> > > > -----Original Message-----
> > > > From: Daniel Jacobowitz [mailto:drow at mvista dot com]
> > > > Sent: Wednesday, March 05, 2003 7:12 PM
> > > > To: Lev Assinovsky
> > > > Cc: gdb at sources dot redhat dot com
> > > > Subject: Re: gdb 5.3 bug
> > > > 
> > > > 
> > > > On Wed, Mar 05, 2003 at 07:07:41PM +0300, Lev Assinovsky wrote:
> > > > > Yes, it does:
> > > > > ----------
> > > > > (gdb) set stop-on-solib-events 1
> > > > > (gdb) r
> > > > > Starting program: 
> > > > /export/home/lev/src/Installation/packages/Personal/LevAssinov
> > > > sky/virtfun/load 
> > > > > warning: Unable to find dynamic linker breakpoint function.
> > > > > GDB will be unable to debug shared library initializers
> > > > > and track explicitly loaded dynamic code.
> > > > > Stopped due to shared library event
> > > > > -----------
> > > > > But what the warning mean?
> > > > 
> > > > That's the problem.  You'll have to figure out why the 
> symbol it's
> > > > looking for is missing from your dynamic linker.  It's 
> > > looking for one
> > > > of these:
> > > >   "r_debug_state",
> > > >   "_r_debug_state",
> > > >   "_dl_debug_state",
> > > >   "rtld_db_dlactivity",
> > > >   "_rtld_debug_state",
> > > > 
> > > > 
> > > > > 
> > > > > Sincerely,
> > > > > ----
> > > > > Lev Assinovsky
> > > > > Aelita Software Corporation
> > > > > O&S Core Division, Programmer
> > > > > ICQ# 165072909
> > > > > 
> > > > > 
> > > > > > -----Original Message-----
> > > > > > From: Daniel Jacobowitz [mailto:drow at mvista dot com]
> > > > > > Sent: Wednesday, March 05, 2003 6:57 PM
> > > > > > To: Lev Assinovsky
> > > > > > Cc: gdb at sources dot redhat dot com
> > > > > > Subject: Re: gdb 5.3 bug
> > > > > > 
> > > > > > 
> > > > > > I don't know.  Does "set stop-on-solib-events 1" cause 
> > > > your program to
> > > > > > stop?
> > > > > > 
> > > > > > On Wed, Mar 05, 2003 at 05:27:09PM +0300, Lev 
> Assinovsky wrote:
> > > > > > > Daniel!
> > > > > > > I was wrong!
> > > > > > > I can step into the function of dynamic library if 
> > > > > > > I run the command "sharedlibrary" before.
> > > > > > > Why are symbols coming in only after that command
> > > > > > > and auto-solib-add (=on) doesn't work?  
> > > > > > > 
> > > > > > > ----
> > > > > > > Lev Assinovsky
> > > > > > > Aelita Software Corporation
> > > > > > > O&S Core Division, Programmer
> > > > > > > ICQ# 165072909
> > > > > > > 
> > > > > > > 
> > > > > > > > -----Original Message-----
> > > > > > > > From: Daniel Jacobowitz [mailto:drow at mvista dot com]
> > > > > > > > Sent: Saturday, March 01, 2003 7:05 PM
> > > > > > > > To: Lev Assinovsky
> > > > > > > > Cc: gdb at sources dot redhat dot com
> > > > > > > > Subject: Re: gdb 5.3 bug
> > > > > > > > 
> > > > > > > > 
> > > > > > > > On Sat, Mar 01, 2003 at 06:59:45PM +0300, Lev 
> > > > Assinovsky wrote:
> > > > > > > > > Dear Daniel!
> > > > > > > > > Thank you very match for your advise!
> > > > > > > > > Snapshot gdb+dejagnu-20030228 works just fine!
> > > > > > > > > Thank a lot all guys who is involved in gdb 
> development. 
> > > > > > > > > I am sorry but I have to bother you with another 
> > > > gdb problem.
> > > > > > > > > The problem is I can't step into the function through 
> > > > > > the pointer
> > > > > > > > > if the function resides in dynamically loaded 
> > > shared object 
> > > > > > > > (library).
> > > > > > > > > Here is the simple test case:
> > > > > > > > 
> > > > > > > > Hmm.  Your testcase works on GNU/Linux, so it must be 
> > > > related to
> > > > > > > > i386-solaris shared library support.  Maybe 
> someone else 
> > > > > > on the list
> > > > > > > > can help.
> > > > > > > > 
> > > > > > > > > 
> > > > > > > > > 1. Shared object:
> > > > > > > > > ---------- cut here --------
> > > > > > > > > #include <iostream>
> > > > > > > > > using namespace std;
> > > > > > > > > 
> > > > > > > > > extern "C" {
> > > > > > > > >     void my_func()
> > > > > > > > >     {
> > > > > > > > >         cout << "This is my_func" << endl;
> > > > > > > > >     }
> > > > > > > > > 
> > > > > > > > > }
> > > > > > > > > ---------- cut here --------
> > > > > > > > > 2. Main:
> > > > > > > > > #include <iostream>
> > > > > > > > > #include <memory>
> > > > > > > > > #include <dlfcn.h>
> > > > > > > > > #include <link.h>
> > > > > > > > > 
> > > > > > > > > using namespace std;
> > > > > > > > > 
> > > > > > > > > void * handle;
> > > > > > > > > 
> > > > > > > > > typedef void  ( *Func_t)();
> > > > > > > > > 
> > > > > > > > > Func_t getFunc() 
> > > > > > > > > {
> > > > > > > > >     Func_t p = (Func_t)dlsym ( handle, "my_func" );
> > > > > > > > >     if ( NULL == p )
> > > > > > > > >     {
> > > > > > > > >         cout << dlerror() << endl;
> > > > > > > > >         exit(2);
> > > > > > > > >     }
> > > > > > > > >     return p;
> > > > > > > > > }
> > > > > > > > > 
> > > > > > > > > int main()
> > > > > > > > > {
> > > > > > > > >     handle = (void*) 
> > > > > > > > ::dlopen("./func_so/bin/i386-sun-solaris/func_so.so", 
> > > > > > > > RTLD_NOW | RTLD_LOCAL | RTLD_GROUP);
> > > > > > > > >     if (handle == NULL)
> > > > > > > > >     {
> > > > > > > > >         cout << dlerror() << endl;
> > > > > > > > >         exit(2);
> > > > > > > > >     }
> > > > > > > > > 
> > > > > > > > >     Func_t f = getFunc();
> > > > > > > > >     f();
> > > > > > > > > }
> > > > > > > > > ---------- cut here --------
> > > > > > > > > 
> > > > > > > > > This testcase works, but I can't step into f() (last 
> > > > > > line) in gdb.
> > > > > > > > > Is it possible to work around or fix this problem?
> > > > > > > > > Thanks in advance!
> > > > > > > > > 
> > > > > > > > > ----
> > > > > > > > > Lev Assinovsky
> > > > > > > > > Aelita Software Corporation
> > > > > > > > > O&S Core Division, Programmer
> > > > > > > > > ICQ# 165072909
> > > > > > > > > 
> > > > > > > > > 
> > > > > > > > > > -----Original Message-----
> > > > > > > > > > From: Daniel Jacobowitz [mailto:drow at mvista dot com]
> > > > > > > > > > Sent: Friday, February 28, 2003 8:19 PM
> > > > > > > > > > To: Lev Assinovsky; gdb at sources dot redhat dot com
> > > > > > > > > > Subject: Re: gdb 5.3 bug
> > > > > > > > > > 
> > > > > > > > > > 
> > > > > > > > > > On Thu, Feb 27, 2003 at 02:09:30PM -0500, Daniel 
> > > > > > Jacobowitz wrote:
> > > > > > > > > > > On Thu, Feb 27, 2003 at 09:11:14PM +0300, Lev 
> > > > > > Assinovsky wrote:
> > > > > > > > > > > > GNU gdb 5.3
> > > > > > > > > > > > Copyright 2002 Free Software Foundation, Inc.
> > > > > > > > > > > > GDB is free software, covered by the GNU 
> > > > General Public 
> > > > > > > > > > License, and you are
> > > > > > > > > > > > welcome to change it and/or distribute copies 
> > > > of it under 
> > > > > > > > > > certain conditions.
> > > > > > > > > > > > Type "show copying" to see the conditions.
> > > > > > > > > > > > There is absolutely no warranty for GDB.  
> > > Type "show 
> > > > > > > > > > warranty" for details.
> > > > > > > > > > > > This GDB was configured as 
> "i386-pc-solaris2.8"...
> > > > > > > > > > > > (gdb) l
> > > > > > > > > > > > 
> > > > > > > > > > > > Program received signal SIGSEGV, 
> Segmentation fault.
> > > > > > > > > > > > 0x08136671 in finish_block (symbol=0x6e5f5f3a, 
> > > > > > > > > > listhead=0x82241f4, old_blocks=0x3a787863, 
> > > > start=1634562671, 
> > > > > > > > > > > >     end=1634562720, objfile=0x8263fe0) at 
> > > > buildsym.c:304
> > > > > > > > > > > > 304           struct type *ftype = 
> > > > SYMBOL_TYPE (symbol);
> > > > > > > > > > > > (gdb) 
> > > > > > > > > > > > 
> > > > > > > > > > > > 
> > > > > > > > > > > > Any clue what might be the reason of gdb crash?
> > > > > > > > > > > 
> > > > > > > > > > > OK, the value of "symbol" is obviously wrong.  
> > > > Could you 
> > > > > > > > > > privately send
> > > > > > > > > > > me the binary?  If that's not possible, 
> at least a 
> > > > > > > > > > backtrace would be
> > > > > > > > > > > useful...
> > > > > > > > > > 
> > > > > > > > > > 
> > > > > > > > > > Lev,
> > > > > > > > > > 
> > > > > > > > > > You're in luck, this has already been fixed.  It 
> > > > appears to 
> > > > > > > > > > be a bug in
> > > > > > > > > > the Sun compilers - it outputs end-of-function 
> > > > > > markers without a
> > > > > > > > > > corresponding beginning-of-function marker.  If 
> > > you get a 
> > > > > > > > GDB snapshot
> > > > > > > > > > from CVS (http://sources.redhat.com/gdb/) it 
> > > > should handle 
> > > > > > > > > > your program
> > > > > > > > > > gracefully.
> > > > > > > > > > 
> > > > > > > > > > -- 
> > > > > > > > > > Daniel Jacobowitz
> > > > > > > > > > MontaVista Software                         Debian 
> > > > > > > > GNU/Linux Developer
> > > > > > > > > > 
> > > > > > > > > 
> > > > > > > > 
> > > > > > > > -- 
> > > > > > > > Daniel Jacobowitz
> > > > > > > > MontaVista Software                         Debian 
> > > > > > GNU/Linux Developer
> > > > > > > > 
> > > > > > > 
> > > > > > 
> > > > > > -- 
> > > > > > Daniel Jacobowitz
> > > > > > MontaVista Software                         Debian 
> > > > GNU/Linux Developer
> > > > > > 
> > > > > 
> > > > 
> > > > -- 
> > > > Daniel Jacobowitz
> > > > MontaVista Software                         Debian 
> > > GNU/Linux Developer
> > > > 
> > > 
> > 
> 
> -- 
> Daniel Jacobowitz
> MontaVista Software                         Debian GNU/Linux Developer
> 


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