From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 15041 invoked by alias); 1 Mar 2003 16:05:11 -0000 Mailing-List: contact gdb-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sources.redhat.com Received: (qmail 15034 invoked from network); 1 Mar 2003 16:05:10 -0000 Received: from unknown (HELO crack.them.org) (65.125.64.184) by 172.16.49.205 with SMTP; 1 Mar 2003 16:05:10 -0000 Received: from nevyn.them.org ([66.93.61.169] ident=mail) by crack.them.org with asmtp (Exim 3.12 #1 (Debian)) id 18pBNF-0008A4-00; Sat, 01 Mar 2003 12:06:13 -0600 Received: from drow by nevyn.them.org with local (Exim 3.36 #1 (Debian)) id 18p9To-0001zI-00; Sat, 01 Mar 2003 11:04:52 -0500 Date: Sat, 01 Mar 2003 16:05:00 -0000 From: Daniel Jacobowitz To: Lev Assinovsky Cc: gdb@sources.redhat.com Subject: Re: gdb 5.3 bug Message-ID: <20030301160450.GA7508@nevyn.them.org> Mail-Followup-To: Lev Assinovsky , gdb@sources.redhat.com References: <3F6F4712B759A34ABD453A8B39C10D6229DE31@bagman.edm.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <3F6F4712B759A34ABD453A8B39C10D6229DE31@bagman.edm.com> User-Agent: Mutt/1.5.1i X-SW-Source: 2003-03/txt/msg00005.txt.bz2 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 > using namespace std; > > extern "C" { > void my_func() > { > cout << "This is my_func" << endl; > } > > } > ---------- cut here -------- > 2. Main: > #include > #include > #include > #include > > 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@mvista.com] > > Sent: Friday, February 28, 2003 8:19 PM > > To: Lev Assinovsky; gdb@sources.redhat.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