From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 125818 invoked by alias); 8 Jun 2015 19:42:14 -0000 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 Received: (qmail 125796 invoked by uid 89); 8 Jun 2015 19:42:13 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-0.1 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.2 X-HELO: mailsec118.isp.belgacom.be Received: from mailsec118.isp.belgacom.be (HELO mailsec118.isp.belgacom.be) (195.238.20.114) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 08 Jun 2015 19:42:10 +0000 X-Cloudmark-SP-Filtered: true X-Cloudmark-SP-Result: v=1.1 cv=yz6z4UlqfYe1Iv9USMliYggvHmbgQ4ACOrhY3D/q6Wc= c=1 sm=2 a=IkcTkHD0fZMA:10 a=He9z5MlW16G32IkcYmkA:9 a=QEXdDO2ut3YA:10 a=mT6QLbhI4Xp47oPD:21 a=MTJ-bU5KUWjWfw4u:21 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A2D/AgDD7nVV/xSZgW0NT4dgiXG2cIJVAoFnEQEBAQEBAQGFLQEBAwEjVgULCw4MAiYCAlcGCoguDakecKNlAQEBAQEBAQMBAQEBHoEhiiKFBgeCaIFFBaAHg3qCf4tcg1mBBYEoHIFUgzQBAQE Received: from 20.153-129-109.adsl-dyn.isp.belgacom.be (HELO [192.168.1.15]) ([109.129.153.20]) by relay.skynet.be with ESMTP/TLS/DHE-RSA-AES128-SHA; 08 Jun 2015 21:42:07 +0200 Message-ID: <1433792516.6916.15.camel@hp> Subject: Re: [PATCH v3] Make only user-specified executable and symbol filenames sticky From: Philippe Waroquiers To: Gary Benson Cc: gdb-patches@sourceware.org, Pedro Alves , Joel Brobecker , Doug Evans , Don Breazeal Date: Mon, 08 Jun 2015 19:42:00 -0000 In-Reply-To: <1433754079-10395-1-git-send-email-gbenson@redhat.com> References: <1433677265.2933.20.camel@soleil> <1433754079-10395-1-git-send-email-gbenson@redhat.com> Content-Type: text/plain; charset="UTF-8" Mime-Version: 1.0 Content-Transfer-Encoding: 7bit X-IsSubscribed: yes X-SW-Source: 2015-06/txt/msg00119.txt.bz2 On Mon, 2015-06-08 at 10:01 +0100, Gary Benson wrote: > This updated patch has been created against the latest gdb/master > (80fb91378c91a8239817a5ab2b1c3e346109db25). Could you please try > your tests again? First test with 'native' attach/detach/attach/detach/attach is working ok. However, the behaviour of the 3rd attach differs: a question is asked, that is answered automatically as yes (for EOF). So that is strange. GNU gdb (GDB) 7.9.50.20150608-cvs ... Type "apropos word" to search for commands related to "word". (gdb) atta 13286 Attaching to process 13286 Reading symbols from /bin/sleep...(no debugging symbols found)...done. Reading symbols from /lib/x86_64-linux-gnu/libc.so.6...(no debugging symbols found)...done. Reading symbols from /lib64/ld-linux-x86-64.so.2...(no debugging symbols found)...done. 0x00007f3c5bb06f20 in nanosleep () from /lib/x86_64-linux-gnu/libc.so.6 (gdb) detach Detaching from program: /bin/sleep, process 13286 (gdb) atta 13320 Attaching to program: /bin/sleep, process 13320 Reading symbols from /home/philippe/valgrind/trunk_untouched/gdbserver_tests/sleepers...done. Reading symbols from /lib/x86_64-linux-gnu/libpthread.so.0...(no debugging symbols found)...done. [New LWP 13323] [New LWP 13322] [New LWP 13321] [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". Reading symbols from /lib/x86_64-linux-gnu/libc.so.6...(no debugging symbols found)...done. Reading symbols from /lib64/ld-linux-x86-64.so.2...(no debugging symbols found)...done. 0x00007f5f538e1da3 in select () from /lib/x86_64-linux-gnu/libc.so.6 (gdb) detach Detaching from program: /home/philippe/valgrind/trunk_untouched/gdbserver_tests/sleepers, process 13320 (gdb) atta 13286 Attaching to program: /home/philippe/valgrind/trunk_untouched/gdbserver_tests/sleepers, process 13286 Load new symbol table from "/bin/sleep"? (y or n) EOF [assumed Y] Reading symbols from /bin/sleep...(no debugging symbols found)...done. Reading symbols from /lib/x86_64-linux-gnu/libc.so.6...(no debugging symbols found)...done. Reading symbols from /lib64/ld-linux-x86-64.so.2...(no debugging symbols found)...done. 0x00007f3c5bb06f20 in nanosleep () from /lib/x86_64-linux-gnu/libc.so.6 (gdb) 2nd test is with Valgrind gdbsrv. Also working ok. However, here we have a question (no EOF answer) asking to change or not the symbol file. GNU gdb (GDB) 7.9.50.20150608-cvs ... Type "apropos word" to search for commands related to "word". (gdb) tar rem | lvgdb Remote debugging using | lvgdb relaying data between gdb and process 13394 warning: remote target does not support file transfer, attempting to access files from local filesystem. Reading symbols from /home/philippe/valgrind/trunk_untouched/gdbserver_tests/sleepers...done. Reading symbols from /lib64/ld-linux-x86-64.so.2...(no debugging symbols found)...done. 0x00000000040012d0 in ?? () from /lib64/ld-linux-x86-64.so.2 (gdb) detach Detaching from program: /home/philippe/valgrind/trunk_untouched/gdbserver_tests/sleepers, Remote target Ending remote debugging. (gdb) tar rem | lvgdb --pid=13413 Remote debugging using | lvgdb --pid=13413 relaying data between gdb and process 13413 Load new symbol table from "/home/philippe/valgrind/trunk_untouched/memcheck/tests/trivialleak"? (y or n) y Reading symbols from /home/philippe/valgrind/trunk_untouched/memcheck/tests/trivialleak...done. Reading symbols from /lib64/ld-linux-x86-64.so.2...(no debugging symbols found)...done. 0x00000000040012d0 in ?? () from /lib64/ld-linux-x86-64.so.2 (gdb) detach Detaching from program: /home/philippe/valgrind/trunk_untouched/memcheck/tests/trivialleak, Remote target Ending remote debugging. (gdb) tar rem | lvgdb --pid=13394 Remote debugging using | lvgdb --pid=13394 relaying data between gdb and process 13394 Load new symbol table from "/home/philippe/valgrind/trunk_untouched/gdbserver_tests/sleepers"? (y or n) y Reading symbols from /home/philippe/valgrind/trunk_untouched/gdbserver_tests/sleepers...done. Reading symbols from /home/philippe/valgrind/trunk_untouched/./.in_place/vgpreload_core-amd64-linux.so...done. Reading symbols from /home/philippe/valgrind/trunk_untouched/./.in_place/vgpreload_memcheck-amd64-linux.so...done. Reading symbols from /lib/x86_64-linux-gnu/libpthread.so.0...(no debugging symbols found)...done. Reading symbols from /lib/x86_64-linux-gnu/libc.so.6...(no debugging symbols found)...done. Reading symbols from /lib64/ld-linux-x86-64.so.2...(no debugging symbols found)...done. 0x0000000005145da3 in select () from /lib/x86_64-linux-gnu/libc.so.6 (gdb) tar rem | lvgdb --pid=13427 A program is being debugged already. Kill it? (y or n) n Program not killed. (gdb) detach Detaching from program: /home/philippe/valgrind/trunk_untouched/gdbserver_tests/sleepers, Remote target Ending remote debugging. (gdb) tar rem | lvgdb --pid=13427 Remote debugging using | lvgdb --pid=13427 relaying data between gdb and process 13427 Load new symbol table from "/home/philippe/valgrind/trunk_untouched/memcheck/tests/trivialleak"? (y or n) y Reading symbols from /home/philippe/valgrind/trunk_untouched/memcheck/tests/trivialleak...done. Reading symbols from /lib64/ld-linux-x86-64.so.2...(no debugging symbols found)...done. 0x00000000040012d0 in ?? () from /lib64/ld-linux-x86-64.so.2 (gdb) 3rd test with GDB gdbserver: there is still the problem of invalid target. GNU gdb (GDB) 7.9.50.20150608-cvs ... Type "apropos word" to search for commands related to "word". (gdb) tar rem :1234 Remote debugging using :1234 Reading symbols from target:/home/philippe/valgrind/trunk_untouched/memcheck/tests/trivialleak...done. Reading symbols from target:/lib64/ld-linux-x86-64.so.2...(no debugging symbols found)...done. 0x00007ffff7ddb2d0 in ?? () from target:/lib64/ld-linux-x86-64.so.2 (gdb) detach Detaching from program: target:/home/philippe/valgrind/trunk_untouched/memcheck/tests/trivialleak, process 13447 Ending remote debugging. (gdb) tar rem :1235 `target:/home/philippe/valgrind/trunk_untouched/memcheck/tests/trivialleak' has disappeared; keeping its symbols. Remote debugging using :1235 Load new symbol table from "target:/home/philippe/valgrind/trunk_untouched/gdbserver_tests/sleepers"? (y or n) y Reading symbols from target:/home/philippe/valgrind/trunk_untouched/gdbserver_tests/sleepers...Can't read symbols from target:/home/philippe/valgrind/trunk_untouched/gdbserver_tests/sleepers: Invalid argument (gdb) Test 4 is the same as test 1, but with gdb started with a filename as argument. GDB gives a warning that the exec+sym file does not match the target one. gdb ./gdbserver_tests/sleepers ... Type "apropos word" to search for commands related to "word"... Reading symbols from ./gdbserver_tests/sleepers...done. (gdb) atta 13474 Attaching to program: /home/philippe/valgrind/trunk_untouched/gdbserver_tests/sleepers, process 13474 Reading symbols from /lib/x86_64-linux-gnu/libpthread.so.0...(no debugging symbols found)...done. [New LWP 13477] [New LWP 13476] [New LWP 13475] [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". Reading symbols from /lib/x86_64-linux-gnu/libc.so.6...(no debugging symbols found)...done. Reading symbols from /lib64/ld-linux-x86-64.so.2...(no debugging symbols found)...done. 0x00007fec5b318da3 in select () from /lib/x86_64-linux-gnu/libc.so.6 (gdb) detach Detaching from program: /home/philippe/valgrind/trunk_untouched/gdbserver_tests/sleepers, process 13474 (gdb) atta 13484 Attaching to program: /home/philippe/valgrind/trunk_untouched/gdbserver_tests/sleepers, process 13484 warning: Process 13484 has executable file /bin/sleep, but executable file is currently set to /home/philippe/valgrind/trunk_untouched/gdbserver_tests/sleepers warning: Process 13484 has symbol file /bin/sleep, but symbol file is currently set to /home/philippe/valgrind/trunk_untouched/gdbserver_tests/sleepers Reading symbols from /lib64/ld-linux-x86-64.so.2...(no debugging symbols found)...done. 0x00007f1d71fdef20 in ?? () (gdb) detach Detaching from program: /home/philippe/valgrind/trunk_untouched/gdbserver_tests/sleepers, process 13484 (gdb) atta 13474 Attaching to program: /home/philippe/valgrind/trunk_untouched/gdbserver_tests/sleepers, process 13474 Reading symbols from /lib/x86_64-linux-gnu/libpthread.so.0...(no debugging symbols found)...done. [New LWP 13477] [New LWP 13476] [New LWP 13475] [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". Reading symbols from /lib/x86_64-linux-gnu/libc.so.6...(no debugging symbols found)...done. Reading symbols from /lib64/ld-linux-x86-64.so.2...(no debugging symbols found)...done. 0x00007fec5b318da3 in select () from /lib/x86_64-linux-gnu/libc.so.6 (gdb) detach Detaching from program: /home/philippe/valgrind/trunk_untouched/gdbserver_tests/sleepers, process 13474 (gdb) atta 13484 Attaching to program: /home/philippe/valgrind/trunk_untouched/gdbserver_tests/sleepers, process 13484 warning: Process 13484 has executable file /bin/sleep, but executable file is currently set to /home/philippe/valgrind/trunk_untouched/gdbserver_tests/sleepers warning: Process 13484 has symbol file /bin/sleep, but symbol file is currently set to /home/philippe/valgrind/trunk_untouched/gdbserver_tests/sleepers Reading symbols from /lib64/ld-linux-x86-64.so.2...(no debugging symbols found)...done. 0x00007f1d71fdef20 in ?? () (gdb) file /bin/sleep A program is being debugged already. Are you sure you want to change the file? (y or n) y Load new symbol table from "/bin/sleep"? (y or n) y Reading symbols from /bin/sleep...(no debugging symbols found)...done. (gdb) detach Detaching from program: /bin/sleep, process 13484 (gdb) atta 13474 Attaching to program: /bin/sleep, process 13474 warning: Process 13474 has executable file /home/philippe/valgrind/trunk_untouched/gdbserver_tests/sleepers, but executable file is currently set to /bin/sleep warning: Process 13474 has symbol file /home/philippe/valgrind/trunk_untouched/gdbserver_tests/sleepers, but symbol file is currently set to /bin/sleep Reading symbols from /lib64/ld-linux-x86-64.so.2...(no debugging symbols found)...done. 0x00007fec5b318da3 in ?? () (gdb) So, in summary, this patch version is better but there are still some strange behaviours. In terms of behaviour, it is somewhat surprising to sometimes have a question, sometimes not. IMO, it would be better to always ask a question when the currently loaded file does not match the target file (native attach or remote target), even when the file was supplied by the user. Philippe