From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 15134 invoked by alias); 23 Jan 2018 11:52:00 -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 15121 invoked by uid 89); 23 Jan 2018 11:51:59 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.2 spammy=confirms, HTo:U*tom, viceversa, opinion X-HELO: rock.gnat.com Received: from rock.gnat.com (HELO rock.gnat.com) (205.232.38.15) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 23 Jan 2018 11:51:58 +0000 Received: from localhost (localhost.localdomain [127.0.0.1]) by filtered-rock.gnat.com (Postfix) with ESMTP id 13FE9117E0B; Tue, 23 Jan 2018 06:51:57 -0500 (EST) Received: from rock.gnat.com ([127.0.0.1]) by localhost (rock.gnat.com [127.0.0.1]) (amavisd-new, port 10024) with LMTP id J0x5ABQrsrmI; Tue, 23 Jan 2018 06:51:57 -0500 (EST) Received: from joel.gnat.com (localhost.localdomain [127.0.0.1]) by rock.gnat.com (Postfix) with ESMTP id 8FEFB1175BE; Tue, 23 Jan 2018 06:51:56 -0500 (EST) Received: by joel.gnat.com (Postfix, from userid 1000) id 74B308330C; Tue, 23 Jan 2018 15:51:52 +0400 (+04) Date: Tue, 23 Jan 2018 11:52:00 -0000 From: Joel Brobecker To: Tom Tromey Cc: Xavier Roirand , gdb-patches@sourceware.org Subject: Re: [RFC] expected behavior for "bt" command used with "set language ..." ? Message-ID: <20180123115152.26mi46zogpbuodn7@adacore.com> References: <87vafxk3us.fsf@tromey.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <87vafxk3us.fsf@tromey.com> User-Agent: NeoMutt/20170113 (1.7.2) X-SW-Source: 2018-01/txt/msg00453.txt.bz2 > Xavier> When printing one frame arguments, should we do it using the language > Xavier> of the frame, and it may be different for each frame in a single "bt" > Xavier> command or should we leave things as they are, and possibly allow the > Xavier> "bt" command to display weird values for frame arguments or even > Xavier> worse, crash GDB because the user set language manually so he has to > Xavier> know what he's doing ? > > I tend to think the answer should be: > > * If the language is "auto", then use each frame's language; otherwise > * If the user specified a particular language, use that language for > everything. I don't really have a strong opinion on this. But I thought I'd mention that using a language to dump the value of a variable described using another language can be a bit iffy, and lead to fairly mysterious errors. If I was a fan of FUD, I might even say it can lead to crashes, if the code is not careful enough. For instance, who knows what it's going to look like asking Ada to print come C++ stuff, or vice-versa... As a user, the few times I have forced the language was to execute one command (eg: print this Ada variable using pure C), and I tend to switch back to "auto" asap. But it's easy to forget, and when that happens, linking the weird printing in our backtrace back to the language change we did a few commands ago may sometimes not be all that obvious. That being said, it looks like this is the behavior we've had for quite a while, now, so it confirms the current approach probably is not that much of any issue (if at all). Hence the lack of strong opinion :). For now, we'll go ahead with what Tom suggests. > Xavier> This can also probably be done by adding frame language parameter to a > Xavier> lot of language specific functions for each language and finally to > Xavier> value_cast but this second solution requires a huge amount of work. > > That would be good to have but I don't think it ought to be tied to > this particular project. Certainly plenty of other code already just > sets and resets the global. Agreed. Thanks Tom! -- Joel