From patchwork Thu May 16 18:01:12 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Tromey X-Patchwork-Id: 90303 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 BD5903849AD0 for ; Thu, 16 May 2024 18:01:50 +0000 (GMT) X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from mail-io1-xd32.google.com (mail-io1-xd32.google.com [IPv6:2607:f8b0:4864:20::d32]) by sourceware.org (Postfix) with ESMTPS id 3D10E384CB97 for ; Thu, 16 May 2024 18:01:16 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 3D10E384CB97 Authentication-Results: sourceware.org; dmarc=pass (p=quarantine dis=none) header.from=adacore.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=adacore.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 3D10E384CB97 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2607:f8b0:4864:20::d32 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1715882479; cv=none; b=nJ1eF1cBwfFLaLv5kckUFqsXN5eSL5nFN9mlzhZ+z9TBe+jdoa1C8fdEEjbqQL9STC4lqwfumFoJRJ0FzmP80oPlgCvhBZYSsVQflsywFugHcbFQ8kjsVB8NCjZhYQlPeN80jj9eEZB4T0TLQZqQYkhhL32JLYoGBSLQHJ2jVr0= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1715882479; c=relaxed/simple; bh=RcKdVA0307Y+RdaOhLldRIPc+TFHG9k+dDVi2CUcQpI=; h=DKIM-Signature:From:Date:Subject:MIME-Version:Message-Id:To; b=dha+figwGjRN39avbohu1YAHtPwQHS8SLI2eLzdAMMKQ+ImHgK9ShJYVPRiOla5iVsVRPjjRofDmTTbVtTDwy6SV94h3qSmk3Ms3J+tP3asjO+tb6d2TXIRR+aLJNkVEcVSJR8hWxCj34F7rS2c2nJqOii4RSqqiHDMnyZawuqs= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-io1-xd32.google.com with SMTP id ca18e2360f4ac-7e18adf7268so69374939f.0 for ; Thu, 16 May 2024 11:01:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=adacore.com; s=google; t=1715882475; x=1716487275; darn=sourceware.org; h=to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=JV34CI0v1hHG96iJYxKOFUUmjIpgOId+AWJpQJbVs60=; b=PXiEE/1mx+chrzndB1f/Tvpyb0CMpmjcDvZhvTAirkh0487n69DvLTmETRzllqzRl/ O2sdWUVpdyvOiND0ttJjS6wMPh9rB78LIO7TtWzs8mOoo+Y3Qdxx6sgyw3zM24Fkr9rG WhKaXEvjvj6SJMZKNTnAVXt2aGAtv6KkpJs3KV9STafLlMvY9zdUT+kWZTr2pyF3TgtS HBTM5OJvdPB4kdKK6HS6iaa54bmWx7HiznoW4+HZO0qaJbf8ps6a9mZamrLIzKT7tRbo PhelDVae93kZwiD2S9FF/DU/hqdPyEPvXNSaDh+T1tFez45bR7GgWm7NhcKhijFNWJ9g VUTg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1715882475; x=1716487275; h=to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=JV34CI0v1hHG96iJYxKOFUUmjIpgOId+AWJpQJbVs60=; b=BgbZXVuHiavv1ae7Kr76v9yEVsVaU+Lm2DeZocwk3Ag2KxprX5MlYfwjRuq7SvJUai rsKucy8dRNixzBcwymBa9B0Dnaodv+JtpstOnAy9j1oQIENDUvWOqG5NYRW6RemPu97q YgCdYT7+HjhG8cQ2DRFS3Ty/k0TWpIXHKNDLMt28RM72Lo9KfQc/b20A0DS7gXchUXjL wGgB+3Oxvei9KKKgZi/zx4cqrDoQiAFBSWY9eHswRqjamRvwG36U/rZsPIaRiCtEtAHT 2nH5QG97H9ZnWGrWrgFJx39nQaDeobgGrnL+1uI1D6V9Z8gdxi0lmfVPFjewNM7KHy+1 Y1sA== X-Gm-Message-State: AOJu0YyWylHP0XGHIiNQn4Y/SF0u8o84a8HTZB/vCCVLyAMznZCg0n7b nJzqZoM2F5dUfgt9syWUJJOL05MZ3nJdxQihA5IsssCa2SbHDfhndcDgrtFGs+GIS86d/0DXt1c = X-Google-Smtp-Source: AGHT+IEn0UK6uGdF5Q5xroGKDeWDc05xrTYMh0PDwcpgdkIhxm3ZXq7LnG5LEbCVLBydnJ60D3Um4w== X-Received: by 2002:a6b:7f42:0:b0:7e1:7b55:ad24 with SMTP id ca18e2360f4ac-7e1b51ab391mr2194431239f.2.1715882473891; Thu, 16 May 2024 11:01:13 -0700 (PDT) Received: from localhost.localdomain (75-166-134-4.hlrn.qwest.net. [75.166.134.4]) by smtp.gmail.com with ESMTPSA id 8926c6da1cb9f-489376dc936sm4287426173.142.2024.05.16.11.01.13 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 16 May 2024 11:01:13 -0700 (PDT) From: Tom Tromey Date: Thu, 16 May 2024 12:01:12 -0600 Subject: [PATCH 2/3] Convert DAP disassemble code to use Block hashing MIME-Version: 1.0 Message-Id: <20240516-dap-global-scope-v1-2-07c493009505@adacore.com> References: <20240516-dap-global-scope-v1-0-07c493009505@adacore.com> In-Reply-To: <20240516-dap-global-scope-v1-0-07c493009505@adacore.com> To: gdb-patches@sourceware.org X-Mailer: b4 0.13.0 X-Spam-Status: No, score=-11.1 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.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces+patchwork=sourceware.org@sourceware.org This changes the DAP disassemble code to use the new Block hashing, storing the already-visited blocks in a set rather than a list. --- gdb/python/lib/gdb/dap/disassemble.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/gdb/python/lib/gdb/dap/disassemble.py b/gdb/python/lib/gdb/dap/disassemble.py index d65790a40b0..a2e27e54a64 100644 --- a/gdb/python/lib/gdb/dap/disassemble.py +++ b/gdb/python/lib/gdb/dap/disassemble.py @@ -27,9 +27,8 @@ class _BlockTracker: # just one label -- DAP wouldn't let us return multiple labels # anyway. self.labels = {} - # List of blocks that have already been handled. Note that - # blocks aren't hashable so a set is not used. - self.blocks = [] + # Blocks that have already been handled. + self.blocks = set() # Add a gdb.Block and its superblocks, ignoring the static and # global block. BLOCK can also be None, which is ignored. @@ -37,7 +36,7 @@ class _BlockTracker: while block is not None: if block.is_static or block.is_global or block in self.blocks: return - self.blocks.append(block) + self.blocks.add(block) if block.function is not None: self.labels[block.start] = block.function.name for sym in block: