From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 19965 invoked by alias); 7 Oct 2009 20:05:31 -0000 Received: (qmail 19752 invoked by uid 22791); 7 Oct 2009 20:05:30 -0000 X-SWARE-Spam-Status: No, hits=-1.8 required=5.0 tests=AWL,BAYES_00,EXECUTABLE_URI,RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: sourceware.org Received: from sif.is.scarlet.be (HELO sif.is.scarlet.be) (193.74.71.28) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Wed, 07 Oct 2009 20:05:25 +0000 Received: from [172.17.1.10] (ip-81-11-246-100.dsl.scarlet.be [81.11.246.100]) by sif.is.scarlet.be (8.14.2/8.14.2) with ESMTP id n97K5Jcr006783; Wed, 7 Oct 2009 22:05:20 +0200 Subject: Re: shared lib dos filename style - one more question From: Danny Backx Reply-To: danny.backx@scarlet.be To: gdb-patches In-Reply-To: <1253973110.10921.76.camel@pavilion> References: <1253973110.10921.76.camel@pavilion> Content-Type: multipart/mixed; boundary="=-9c9RwUQyz6OG7K28vZiH" Date: Wed, 07 Oct 2009 20:05:00 -0000 Message-Id: <1254946075.10921.178.camel@pavilion> Mime-Version: 1.0 X-DCC-scarlet.be-Metrics: sif 20001; Body=2 Fuz1=2 Fuz2=2 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2009-10/txt/msg00160.txt.bz2 --=-9c9RwUQyz6OG7K28vZiH Content-Type: text/plain Content-Transfer-Encoding: 7bit Content-length: 5261 No reply to the message below. I'm including my current work now. Please comment. Danny On Sat, 2009-09-26 at 15:51 +0200, Danny Backx wrote: > Hi, > > I got a lot of help from several of you recently to point me in the > right direction. I am trying to get gdb to do the right thing when the > target is running on Windows Mobile (DOS filename style) and the host is > different (e.g. Linux). > > This works, and I think I am close to having my patches in such a shape > that the libiberty maintainers will like them. > > But the drawback for the gdb user is still that changing the variable > that steers this functionality often comes too late. The names are > processed when connecting to the target, changing the variable doesn't > affect gdb's operation any more. (See the session below, it also shows a > rather ugly workaround.) > > My question : can anyone point me to where I should rerun some gdb > function when the gdb user changes the value of this variable ? I > already figured out that the shlib info gets passed when "solib_add" is > called, but is that what I need to rerun ? > > Thanks, > > Danny > > pavilion: {580} ./gdb ~/tmp/arm/test/remedy.nl/shlib/4.stdc > ++/usedemo.exe > GNU gdb (GDB) 6.8.50.20090905-cvs > Copyright (C) 2009 Free Software Foundation, Inc. > License GPLv3+: GNU GPL version 3 or later > > This is free software: you are free to change and redistribute it. > There is NO WARRANTY, to the extent permitted by law. Type "show > copying" > and "show warranty" for details. > This GDB was configured as "--host=i686-pc-linux-gnu > --target=i386-mingw32ce". > For bug reporting instructions, please see: > ... > Reading symbols from /home/danny/tmp/arm/test/remedy.nl/shlib/4.stdc > ++/usedemo.exe...done. > (gdb) set dos_based_file_system off > (gdb) set > solib-search-path /home/danny/tmp/arm/test/remedy.nl/shlib/4.stdc > ++:/opt/x86mingw32ce/bin:/opt/x86mingw32ce/i386-mingw32ce/lib > (gdb) target remote ebox:9999 > Remote debugging using ebox:9999 > Error while mapping shared library sections: > \network\x86\libgcc_s_sjlj-1.dll: No such file or directory. > Error while mapping shared library sections: > \network\x86\libstdc++-6.dll: No such file or directory. > Error while mapping shared library sections: > \network\x86\libx.dll: No such file or directory. > Error while mapping shared library sections: > coredll.dll: No such file or directory. > Symbol file not found for \network\x86\libgcc_s_sjlj-1.dll > Symbol file not found for \network\x86\libstdc++-6.dll > Symbol file not found for \network\x86\libx.dll > Symbol file not found for coredll.dll > WinMainCRTStartup (hInst=0x5f0000e, hPrevInst=0x0, lpCmdLine=0x3601fc70 > L"", nCmdShow=5) > > at /home/danny/src/cegcc/svn.sf.net/cegcc/trunk/cegcc/src/mingw/crt3.c:35 > 35 { > (gdb) info share > >From To Syms Read Shared Object Library > No \network\x86\libgcc_s_sjlj-1.dll > No \network\x86\libstdc++-6.dll > No \network\x86\libx.dll > No coredll.dll > (gdb) set dos_based_file_system on > > Note 1 : here is where I would like to interfere so the paths get > processed again, with the new value of have_dos_based_file_system . > > > (gdb) info share > >From To Syms Read Shared Object Library > No \network\x86\libgcc_s_sjlj-1.dll > No \network\x86\libstdc++-6.dll > No \network\x86\libx.dll > No coredll.dll > > Note 2 : disconnecting and connecting again is a workaround for not > having the functionality I still lack now. > > > (gdb) disconnect > Ending remote debugging. > (gdb) set dos_based_file_system on > (gdb) target remote ebox:9999 > Remote debugging using ebox:9999 > Error while mapping shared library sections: > coredll.dll: No such file or directory. > Reading symbols from /opt/x86mingw32ce/bin/libgcc_s_sjlj-1.dll...done. > Loaded symbols for /opt/x86mingw32ce/bin/libgcc_s_sjlj-1.dll > Reading symbols from /opt/x86mingw32ce/i386-mingw32ce/lib/libstdc > ++-6.dll...done. > Loaded symbols for /opt/x86mingw32ce/i386-mingw32ce/lib/libstdc++-6.dll > Reading symbols from /home/danny/tmp/arm/test/remedy.nl/shlib/4.stdc > ++/libx.dll...done. > Loaded symbols for /home/danny/tmp/arm/test/remedy.nl/shlib/4.stdc > ++/libx.dll > Symbol file not found for coredll.dll > WinMainCRTStartup (hInst=0x5f0000e, hPrevInst=0x0, lpCmdLine=0x3601fc70 > L"", nCmdShow=5) > > at /home/danny/src/cegcc/svn.sf.net/cegcc/trunk/cegcc/src/mingw/crt3.c:35 > 35 { > (gdb) info share > >From To Syms Read Shared Object Library > 0x42371000 0x4237c1fc > Yes /opt/x86mingw32ce/bin/libgcc_s_sjlj-1.dll > 0x41f01000 0x41fd2988 > Yes /opt/x86mingw32ce/i386-mingw32ce/lib/libstdc++-6.dll > 0x41ee1000 0x41ee7068 > Yes /home/danny/tmp/arm/test/remedy.nl/shlib/4.stdc++/libx.dll > No coredll.dll > (gdb) -- Danny Backx ; danny.backx - at - scarlet.be ; http://danny.backx.info --=-9c9RwUQyz6OG7K28vZiH Content-Disposition: attachment; filename="gdb-diff.gz" Content-Type: application/x-gzip; name="gdb-diff.gz" Content-Transfer-Encoding: base64 Content-length: 8955 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 --=-9c9RwUQyz6OG7K28vZiH--