From patchwork Fri Oct 7 18:01:16 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Tromey X-Patchwork-Id: 58538 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 8D0753853809 for ; Fri, 7 Oct 2022 18:02:56 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 8D0753853809 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1665165776; bh=rHd48ZCNzqlYLNrKXfP9GgEoz+TQEKq23ZdwuObrKDc=; h=To:Subject:Date:In-Reply-To:References:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=I1y1Ridvwgemt5z1JIPE/mzeWDE9yxNqoF1yw/S2T3t8iufEuTgjFOOZAfJcJ1R+W XuJqn9mfciaeYOqpyJiBog4AYeg0nNhivL9WwMX8109x6oLnTv+2rmTSCAs/n2bHID 8lym9w3ucMfzvsz/dSFCu5EqOGFQUMF4E4RCRqnw= X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from mail-io1-xd2c.google.com (mail-io1-xd2c.google.com [IPv6:2607:f8b0:4864:20::d2c]) by sourceware.org (Postfix) with ESMTPS id 767723858024 for ; Fri, 7 Oct 2022 18:01:34 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 767723858024 Received: by mail-io1-xd2c.google.com with SMTP id o65so4219178iof.4 for ; Fri, 07 Oct 2022 11:01:34 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=rHd48ZCNzqlYLNrKXfP9GgEoz+TQEKq23ZdwuObrKDc=; b=keXdTrJrsXjASHg2kxqMfb1H4fusyKnDvw/GO6V1VYjiwxrvW9g3gg0BmMyjLpQor6 +bUqKB3pdKeOWcMKtf5TpJnG+EhmCbUzP9Pfb3/TG+CqKQyfjPUZjfYdxXzxu8Fp3V21 NuejNAEFo1fUqQZzD+KyHrQS+WMSfV2AO3L4BnUqTggzZrQAeXvs5DQMow1isDl+abij bpLfJiZODMGoGv1/W/tM09oW9olztjhj/x33vE6yDHEGz4yR7qLDl01iSmqbjxLL91H0 TuObreeNY9KGGmRk6nXOL6/RlaqGUGe5ApCNWuf5KkoQyUWO9K1Ki/0MzxYx5KQM/ZJl Paqw== X-Gm-Message-State: ACrzQf2ZMH3yjHosg/8KLu/lOmqb95IattbITFeuaJPmD6lf2WoqqGNk 4O+5THblH9h3x8A82WP1aXAWb7rt2MO3Wg== X-Google-Smtp-Source: AMsMyM5SKonMnqXFcoccZvuO9kWOA08i3j3ZbPQdSgBgQJishR1rpcOgCaFJttUh3QTpBnQN9B+Fww== X-Received: by 2002:a05:6602:164b:b0:6a2:83c0:d3f5 with SMTP id y11-20020a056602164b00b006a283c0d3f5mr2816111iow.77.1665165693698; Fri, 07 Oct 2022 11:01:33 -0700 (PDT) Received: from localhost.localdomain (71-211-160-49.hlrn.qwest.net. [71.211.160.49]) by smtp.gmail.com with ESMTPSA id h11-20020a056602154b00b006814fd71117sm1203228iow.12.2022.10.07.11.01.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 07 Oct 2022 11:01:33 -0700 (PDT) To: gdb-patches@sourceware.org Subject: [PATCH 5/9] Don't let property evaluation affect the current language Date: Fri, 7 Oct 2022 12:01:16 -0600 Message-Id: <20221007180120.1866772-6-tromey@adacore.com> X-Mailer: git-send-email 2.34.3 In-Reply-To: <20221007180120.1866772-1-tromey@adacore.com> References: <20221007180120.1866772-1-tromey@adacore.com> MIME-Version: 1.0 X-Spam-Status: No, score=-11.3 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Tom Tromey via Gdb-patches From: Tom Tromey Reply-To: Tom Tromey Cc: Tom Tromey Errors-To: gdb-patches-bounces+patchwork=sourceware.org@sourceware.org Sender: "Gdb-patches" On PPC, we saw that calling an inferior function could sometimes change the current language, because gdb would select the call dummy frame -- associated with _start. This patch changes gdb so that the current language is never affected by DWARF property evaluation. --- gdb/dwarf2/loc.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/gdb/dwarf2/loc.c b/gdb/dwarf2/loc.c index ad45d57a654..3333bf438ff 100644 --- a/gdb/dwarf2/loc.c +++ b/gdb/dwarf2/loc.c @@ -1647,6 +1647,11 @@ dwarf2_evaluate_property (const struct dynamic_prop *prop, if (prop == NULL) return false; + /* Evaluating a property should not change the current language. + Without this here this could happen if the code below selects a + frame. */ + scoped_restore_current_language save_language; + if (frame == NULL && has_stack_frames ()) frame = get_selected_frame (NULL);