From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 1316 invoked by alias); 22 Jan 2015 20:52:47 -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 1298 invoked by uid 89); 22 Jan 2015 20:52:46 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-2.0 required=5.0 tests=AWL,BAYES_00,SPF_PASS autolearn=ham version=3.3.2 X-HELO: usevmg21.ericsson.net Received: from usevmg21.ericsson.net (HELO usevmg21.ericsson.net) (198.24.6.65) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-SHA encrypted) ESMTPS; Thu, 22 Jan 2015 20:52:43 +0000 Received: from EUSAAHC008.ericsson.se (Unknown_Domain [147.117.188.96]) by usevmg21.ericsson.net (Symantec Mail Security) with SMTP id 20.50.25146.15401C45; Thu, 22 Jan 2015 15:08:17 +0100 (CET) Received: from [142.133.110.232] (147.117.188.8) by smtp-am.internal.ericsson.com (147.117.188.98) with Microsoft SMTP Server id 14.3.195.1; Thu, 22 Jan 2015 15:52:40 -0500 Message-ID: <54C16318.7060203@ericsson.com> Date: Fri, 23 Jan 2015 00:21:00 -0000 From: Simon Marchi User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.3.0 MIME-Version: 1.0 To: Doug Evans CC: gdb-patches Subject: Re: [PATCH] Introduce gdb_interact in testsuite References: <1421340032-30709-1-git-send-email-simon.marchi@ericsson.com> In-Reply-To: Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-IsSubscribed: yes X-SW-Source: 2015-01/txt/msg00627.txt.bz2 On 15-01-20 08:42 PM, Doug Evans wrote: > On Thu, Jan 15, 2015 at 8:40 AM, Simon Marchi wrote: >> >> gdb_interact is a small utility that we have found quite useful to debug >> test cases. >> >> Putting gdb_interact in a test suspends it and allows to interact with >> gdb to inspect whatever you want. You can then type ">>>" to resume the >> test execution. Of course, this is only for gdb devs. It wouldn't make >> sense to leave a gdb_interact permanently in a test case. >> >> When starting the interaction with the user, the script prints this >> banner: >> >> +------------------------------------------+ >> | Script interrupted, you can now interact | >> | with by gdb. Type >>> to continue. | >> +------------------------------------------+ >> >> Notes: >> * When gdb is launched, the gdb_spawn_id variable (lib/gdb.exp) is >> assigned -1. Given the name, I would expect it to contain the gdb >> expect spawn id, which is needed for interact. I changed all places >> that set gdb_spawn_id to -1 to set it to the actual gdb spawn id >> instead. >> >> * When entering the "interact" mode, the last (gdb) prompt is already >> eaten by expect, so it doesn't show up on the terminal. Subsequent >> prompts do appear though. We tried to print "(gdb)" just before the >> interact to replace it. However, it could be misleading if you are >> debugging an MI test case, it makes you think that you are typing in a >> CLI prompt, when in reality it's MI. In the end I decided that since >> the feature is for developers who know what they're doing and that one >> is normally consciously using gdb_interact, the script doesn't need >> to babysit the user. >> >> * There are probably some quirks depending on where in the script >> gdb_interact appears (e.g. it could interfere with following >> commands and make them fail), but it works for most cases. Quirks can >> always be fixed later. >> >> The idea and original implementation was contributed by Anders >> Granlund, a colleague of mine. Thanks to him. >> >> gdb/testsuite/ChangeLog: >> >> * gdb.base/statistics.exp: Assign spawn id to gdb_spawn_id. >> * gdb.base/valgrind-db-attach.exp: Same. >> * gdb.base/valgrind-infcall.exp: Same. >> * lib/mi-support.exp (default_mi_gdb_start): Same. >> * lib/prompt.exp (default_prompt_gdb_start): Same. >> * lib/gdb.exp (default_gdb_spawn): Same. >> (gdb_interact): New. > > [Apologies for the resend.] > > I'm not sure why we're assigning -1 instead of a usable value, > but I can't find anything to suggest assigning a real id will > cause problems. > > Plus given how trivial gdb_interact is, the patch is fine by me. > > Another way such things are debugged is by first running tests > with TRANSCRIPT=y, and then massaging the transcript.N files > afterwards. I'm all for adding more ways of debugging tests. > Thanks! Thanks, pushed.