From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 22406 invoked by alias); 17 Oct 2003 00:11:37 -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 22393 invoked from network); 17 Oct 2003 00:11:36 -0000 Received: from unknown (HELO web20505.mail.yahoo.com) (216.136.226.140) by sources.redhat.com with SMTP; 17 Oct 2003 00:11:36 -0000 Message-ID: <20031017001136.8010.qmail@web20505.mail.yahoo.com> Received: from [205.158.171.194] by web20505.mail.yahoo.com via HTTP; Thu, 16 Oct 2003 17:11:36 PDT Date: Fri, 17 Oct 2003 00:11:00 -0000 From: Jack J Subject: Re: debug dynamically linked modules.. To: jesse.marlin@intec.us Cc: gdb@sources.redhat.com In-Reply-To: <16270.65162.505380.573926@bass.compgen.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-SW-Source: 2003-10/txt/msg00213.txt.bz2 yep, I have tried all these, but nothing worked. I am wondering is this because the main routine calls the DLL routine via function pointers stored in structure ? When I do: (gdb) dir ~/dll-directory Source directories searched: ~/dll-directory:$cdir:$cwd (gdb) l foo_test.c:10 No source file named foo_test.c. Actually foo_test.c is part of dll-directory. Doing 'info shared', I do see that dll is loaded. Thanks, --- Jesse Marlin wrote: > Jack J writes: > > Hi, > > > > I would like to know how to debug using gdb > > (set breakpoint on routine, etc.) a dynmically > linked, > > relocated code. > > > > The platform is RH Linux 9.0. There is some > > application > > module compiled with -fPIC and -shared, and > > -export-dynamic options. > > A global structure containing functions is > exported by > > the DLL module. > > The problem: I would like to set breakpoint on > one > > of the (file static) functions contained in this > > structure. > > > > >From mainline code after call to dlsym(..) (to > the > > global structure), I try to set break point, and > I > > get error: "Function xxx not defined.". > > > > I do 'info shared' on gdb and do see the file > being > > loaded. Also I do see that "-g" option to add > > debug symbols in gcc. > > > > Is there anything I am missing ? How does one > > normally use gdb in such scenario ? > > > > Any tips, pointers/hints is appreciated. > > > > Thanks, > > One thing I do that is successful most of the time > is place a > breakpoint on a file:line instead of on a function. > Try looking into > these: > > br file:line - place a breakpoint on a file > and line number. > C-x SPC does this for you in > (X)Emacs. > > info shared - shows which shared libraries > are currently loaded. > > (gdb) help sharedlibrary > Load shared object library symbols for files > matching REGEXP. > __________________________________ Do you Yahoo!? The New Yahoo! Shopping - with improved product search http://shopping.yahoo.com