From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 1829 invoked by alias); 19 Feb 2003 19:44:27 -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 1822 invoked from network); 19 Feb 2003 19:44:27 -0000 Received: from unknown (HELO mx1.redhat.com) (172.16.49.200) by 172.16.49.205 with SMTP; 19 Feb 2003 19:44:27 -0000 Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.11.6/8.11.6) with ESMTP id h1JJiQK11899 for ; Wed, 19 Feb 2003 14:44:26 -0500 Received: from pobox.corp.redhat.com (pobox.corp.redhat.com [172.16.52.156]) by int-mx1.corp.redhat.com (8.11.6/8.11.6) with ESMTP id h1JJiQa09602; Wed, 19 Feb 2003 14:44:26 -0500 Received: from localhost.localdomain (vpn50-1.rdu.redhat.com [172.16.50.1]) by pobox.corp.redhat.com (8.11.6/8.11.6) with ESMTP id h1JJiQO02789; Wed, 19 Feb 2003 14:44:26 -0500 Received: (from kev@localhost) by localhost.localdomain (8.11.6/8.11.6) id h1JJiKk09268; Wed, 19 Feb 2003 12:44:20 -0700 Date: Wed, 19 Feb 2003 19:44:00 -0000 From: Kevin Buettner Message-Id: <1030219194420.ZM9267@localhost.localdomain> In-Reply-To: "Kris Warkentin" "solib-search-path not honoured after program start" (Feb 19, 2:04pm) References: <0a0b01c2d849$b1bcfc40$0202040a@catdog> To: "Kris Warkentin" , Subject: Re: solib-search-path not honoured after program start MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-SW-Source: 2003-02/txt/msg00372.txt.bz2 On Feb 19, 2:04pm, Kris Warkentin wrote: > Here's the problem: > > Run a program under gdb and break at main. If gdb can't find all the shared > libs, it complains about it like so: > > Error while mapping shared library sections: > libtestLib_g.so.1: No such file or directory. > > So, at main, if I 'info shared', I see something like this: > > >From To Syms Read Shared Object Library > No libtestLib_g.so.1 > 0xb0312504 0xb0349b06 Yes /t/x86/lib/libc.so.2 > > If I now go and set solib-search-path such that it can find > libtestLib_g.so.1, and type 'shared', it still doesn't find it. > > If I restart the program, there is no problem. For whatever reason, after > the process has started, gdb never tries to find the shlibs again. > > I spent some time tracing around but didn't see exactly where this might be > fixable. Looks like solib_open does the searching but isn't called later > on. The shared command calls solib_add which doesn't seem to do any > searching on solib_search_path. > > Can/should this be fixed? I think this so. At first glance, the problem seems to be that update_solib_list() only considers mapping newly found shared libraries and not ones that were previously known, but which could not be found. It might not be too hard to change things so that it attempts to map previously unmappable libraries, but I wonder what should happen to already mapped and/or loaded shared libraries when solib-search-path is changed. If changing the search path (or the absolute prefix) would cause different libraries to be found (than were found previously), should the old ones be unmapped/discarded? (I suspect the answer is yes.) If so, maybe the right way to fix this problem is to have the "set solib-search-path" and "set solib-absolute-prefix" commands simply unload all known shared libraries and then invoke solib_add(). Kevin