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] |
I just checked the same test case with the pair SUNWspro/CC,SUNWspro/dbx - they work. I can easily step into any function from the dynamically loaded shared library :( ---- Lev Assinovsky Aelita Software Corporation O&S Core Division, Programmer ICQ# 165072909 > -----Original Message----- > From: Lev Assinovsky > Sent: Saturday, March 01, 2003 7:14 PM > To: gdb at sources dot redhat dot com > Cc: Daniel Jacobowitz > Subject: RE: gdb 5.3 bug > > > Gdb guys! Help me with solaris please!! > > > 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. > > ---- > 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 > > >
Attachment:
load.cpp
Description: load.cpp
Attachment:
func.cpp
Description: func.cpp
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |