From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 30203 invoked by alias); 26 Sep 2009 13:49:37 -0000 Received: (qmail 30178 invoked by uid 22791); 26 Sep 2009 13:49:35 -0000 X-SWARE-Spam-Status: No, hits=-0.3 required=5.0 tests=AWL,BAYES_00,EXECUTABLE_URI,RCVD_IN_DNSWL_LOW,RCVD_IN_JMF_BL,SPF_PASS X-Spam-Check-By: sourceware.org Received: from eir.is.scarlet.be (HELO eir.is.scarlet.be) (193.74.71.27) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Sat, 26 Sep 2009 13:49:28 +0000 Received: from [172.17.1.10] (ip-81-11-238-197.dsl.scarlet.be [81.11.238.197]) by eir.is.scarlet.be (8.14.2/8.14.2) with ESMTP id n8QDnNNR017958; Sat, 26 Sep 2009 15:49:24 +0200 Subject: shared lib dos filename style - one more question From: Danny Backx Reply-To: danny.backx@scarlet.be To: gdb-patches Content-Type: text/plain Date: Sat, 26 Sep 2009 13:49:00 -0000 Message-Id: <1253973110.10921.76.camel@pavilion> Mime-Version: 1.0 Content-Transfer-Encoding: 7bit X-DCC-scarlet.be-Metrics: eir 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-09/txt/msg00836.txt.bz2 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