From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id ukxwOAWrDmAyfgAAWB0awg (envelope-from ) for ; Mon, 25 Jan 2021 06:27:01 -0500 Received: by simark.ca (Postfix, from userid 112) id D7AE81EF80; Mon, 25 Jan 2021 06:27:01 -0500 (EST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on simark.ca X-Spam-Level: X-Spam-Status: No, score=0.2 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,MAILING_LIST_MULTI,RDNS_NONE,URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.2 Received: from sourceware.org (unknown [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id 7794A1E940 for ; Mon, 25 Jan 2021 06:27:01 -0500 (EST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 1C7D439484AC; Mon, 25 Jan 2021 11:27:01 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 1C7D439484AC DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1611574021; bh=BcqBqOIIfkOlHo0Ah2PIgnzlkW30Y7iQUaXoo/kvi4w=; h=To:Subject:Date:In-Reply-To:References:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To: From; b=ITu1Na4xHLAVl8GFIjYhyBdBjEkFU7XrzCU+yyq+9IsyB4kYftSTh5Fj5PnLkewYG ZXMr7+FXW5xWYeHHLxvGlyvK4uf6VyXb7o8szBZpQs0ho8Dkwu2lWgFJH7oRlFx1r1 ROUYIWHyc4V8iok1vwxDe+jfL9tTXy3kHmVdGdi0= Received: from mail-wr1-x433.google.com (mail-wr1-x433.google.com [IPv6:2a00:1450:4864:20::433]) by sourceware.org (Postfix) with ESMTPS id 8A7283945C23 for ; Mon, 25 Jan 2021 11:26:58 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 8A7283945C23 Received: by mail-wr1-x433.google.com with SMTP id p15so5312034wrq.8 for ; Mon, 25 Jan 2021 03:26:58 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=BcqBqOIIfkOlHo0Ah2PIgnzlkW30Y7iQUaXoo/kvi4w=; b=j6cD+M39vKuJY9VK6qM+y2p6JX7Uecm3r7d0WrNRXx0r7kPM2UNODSU4U+fENkA+62 /QsQCX5dxzGiPLppYqnDMTtlQXyqV9Iq3GsHK38mvVOXuwJ5sqAuXKF5tYlBtuoaotPq jBsEJ/MX0dupYv4WG+WsGRZNJ6MgUI3V1rbMAhuKgTxrDFoIRmgOp0aGF9LyeDxh3dku vGl044DuAUcFpvx9Bj698PM5D10mwlzE2rk/8YTkSVRQSE4kDkbN6rFNo+YF3Y9sy4rj FLX4T1VYGeb18NzcMQjtixWR1Kd1gLoKQryT8hIUnXvNf+YlqsiyqlVFt0SQO6LyeKTY o29A== X-Gm-Message-State: AOAM532eFsBnUSoevilREFdoujutrZyefPnK/6YQukPsrmS7yG+kVXHv +WwUSBBOIMC2zHjrHCp1brHuA1Bi925NkC6qZo8Ok3eJnaDqNdDRXwEgU14qy7lSRGmYUVMSPpy zSAJt5Gby9PmLf2ftkCJkiL2/i+xm3r1Zfv0L92DO9dlmhsXBQ86PlQrc7PLmvfISAAsVpPhEnm xV X-Google-Smtp-Source: ABdhPJywlrpqQA0DqSEj7j+qmG+pkIgiwPgIgx84IuxkRUuWDGKHqlLR+t7AUZtHFXyhHo/W7hcphg== X-Received: by 2002:adf:f749:: with SMTP id z9mr359481wrp.327.1611574017201; Mon, 25 Jan 2021 03:26:57 -0800 (PST) Received: from focaccia.undoers.io (cpc159317-cmbg20-2-0-cust151.5-4.cable.virginm.net. [81.111.29.152]) by smtp.gmail.com with ESMTPSA id q2sm20648220wma.6.2021.01.25.03.26.56 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 25 Jan 2021 03:26:56 -0800 (PST) To: gdb-patches@sourceware.org Subject: [PATCH v2 0/5] Add support for command renaming Date: Mon, 25 Jan 2021 11:26:44 +0000 Message-Id: <20210125112649.56362-1-mbarisione@undo.io> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20210108100706.96190-1-mbarisione@undo.io> References: <20210108100706.96190-1-mbarisione@undo.io> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit 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: , From: Marco Barisione via Gdb-patches Reply-To: Marco Barisione Errors-To: gdb-patches-bounces@sourceware.org Sender: "Gdb-patches" This patch series adds support for command renaming to GDB. See the first email of this thread for details on the rationale and design. This second version fixes a few style issues, a bug in my code, and the way the prefix name for prefix commands is set. In particular: * Patch 1: add lookup_cmd_exact to simplify a common pattern Same as before except for style fixes. * Patch 2: prevent prefix commands from being hooks Same as before. * Patch 3: update the docs for add_cmd and do_add_cmd to match reality Same as before. * Patch 4: generate the prefix name for prefix commands on demand New patch which changes how the prefix name is set/generated. This simplifies a lot of existing code and the code from the next patch. Moreover, it fixes what I think could lead to a use after free (based on reading code, I didn't actually reproduce any crash). * Patch 5: Add support for renaming commands Updated version of what was before patch 4. This contains a few style fixes and makes delete_cmd_by_name use the lookup_cmd_exact function rather than find_cmd. Note that patches 1 to 4 are needed for the new feature but could be merged separately as they are improvements to the existing code. Marco Barisione (5): gdb: add lookup_cmd_exact to simplify a common pattern gdb: prevent prefix commands from being hooks gdb: update the docs for add_cmd and do_add_cmd to match reality gdb: generate the prefix name for prefix commands on demand gdb: Add support for renaming commands gdb/NEWS | 26 + gdb/ada-lang.c | 8 +- gdb/arm-tdep.c | 4 +- gdb/auto-load.c | 9 +- gdb/breakpoint.c | 20 +- gdb/bsd-kvm.c | 2 +- gdb/btrace.c | 9 +- gdb/cli/cli-cmds.c | 12 +- gdb/cli/cli-decode.c | 731 ++++++++++++++---- gdb/cli/cli-decode.h | 29 +- gdb/cli/cli-dump.c | 16 +- gdb/cli/cli-logging.c | 4 +- gdb/cli/cli-script.c | 375 +++++++-- gdb/cli/cli-setshow.c | 11 +- gdb/cli/cli-style.c | 11 +- gdb/cli/cli-style.h | 3 - gdb/command.h | 110 ++- gdb/compile/compile.c | 2 +- gdb/cp-support.c | 1 - gdb/dcache.c | 5 +- gdb/doc/gdb.texinfo | 55 +- gdb/doc/python.texi | 38 +- gdb/dwarf2/index-cache.c | 4 +- gdb/dwarf2/read.c | 4 +- gdb/f-lang.c | 4 +- gdb/frame.c | 4 +- gdb/gnu-nat.c | 12 +- gdb/go32-nat.c | 2 +- gdb/guile/guile.c | 9 +- gdb/guile/scm-cmd.c | 2 +- gdb/i386-tdep.c | 4 +- gdb/infcmd.c | 8 +- gdb/language.c | 4 +- gdb/macrocmd.c | 2 +- gdb/maint-test-options.c | 3 +- gdb/maint-test-settings.c | 2 - gdb/maint.c | 18 +- gdb/memattr.c | 4 +- gdb/mips-tdep.c | 6 +- gdb/printcmd.c | 2 +- gdb/probe.c | 3 +- gdb/python/py-cmd.c | 228 ++++-- gdb/python/python-internal.h | 1 + gdb/python/python.c | 6 +- gdb/ravenscar-thread.c | 4 +- gdb/record-btrace.c | 16 +- gdb/record-full.c | 6 +- gdb/record.c | 10 +- gdb/remote.c | 6 +- gdb/riscv-tdep.c | 8 +- gdb/rs6000-tdep.c | 4 +- gdb/ser-tcp.c | 4 +- gdb/serial.c | 4 +- gdb/sh-tdep.c | 4 +- gdb/skip.c | 2 +- gdb/sparc64-tdep.c | 2 +- gdb/stack.c | 8 +- gdb/symfile.c | 2 +- gdb/symtab.c | 3 +- gdb/target-descriptions.c | 6 +- gdb/target.c | 2 +- gdb/testsuite/gdb.base/command-renaming.exp | 571 ++++++++++++++ gdb/testsuite/gdb.base/define-prefix.exp | 24 + .../gdb.python/py-rename-existing.exp | 364 +++++++++ .../gdb.python/py-rename-existing.py | 46 ++ gdb/thread.c | 4 +- gdb/top.c | 10 +- gdb/tracepoint.c | 2 +- gdb/tui/tui-layout.c | 2 +- gdb/tui/tui-win.c | 8 +- gdb/typeprint.c | 6 +- gdb/unittests/command-def-selftests.c | 4 +- gdb/utils.c | 4 - gdb/valprint.c | 10 +- gdb/value.c | 2 +- gdb/windows-tdep.c | 2 +- 76 files changed, 2434 insertions(+), 529 deletions(-) create mode 100644 gdb/testsuite/gdb.base/command-renaming.exp create mode 100644 gdb/testsuite/gdb.python/py-rename-existing.exp create mode 100644 gdb/testsuite/gdb.python/py-rename-existing.py -- 2.28.0