From patchwork Wed Oct 30 15:53:34 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrew Burgess X-Patchwork-Id: 99830 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 E58663857BBA for ; Wed, 30 Oct 2024 15:54:45 +0000 (GMT) X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by sourceware.org (Postfix) with ESMTP id 2DECA3857C6C for ; Wed, 30 Oct 2024 15:53:44 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 2DECA3857C6C Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=redhat.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=redhat.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 2DECA3857C6C Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=170.10.133.124 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1730303626; cv=none; b=gCa2tnqhq+e4bN/IS8FUzQKAo4RWYzaZUjkC+yh45mMXDl6ErdnsyGuF8QIOpnqo3F3TXGP3UNq20TSvLldk4YwaUJMvSLV4hRzlc1yPOBhqhpvfEvAWJh9OmDhZJRNHR8yw+/QMtwgqcGEISH9VQ/iydBt0aysNY5FVepE3b4I= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1730303626; c=relaxed/simple; bh=Z28tlXQk1UwLFdc1A7nZzvfZNfca61Zv9h7q7D5tt7o=; h=DKIM-Signature:From:To:Subject:Date:Message-Id:MIME-Version; b=u6xr2HygW7qOO6XdSD0zUGhTCu4K9waPjHzh+1AjQu3ZST7pV9fwB9VYrK1v5m3BZ5PM9vh5nws9CnKR+M+160HnFt5gymzmtLypqomRrqZi42gKcA8QRL4ZhHgiuUt7zgftOY0WMiWOBs14htzn5Hve8eos5TPJbX1f4NN9QE0= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1730303623; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=VYJkKqEatwS6i9fKzk+ISSdt5a4kjJwCYp4gGWjJybE=; b=OBh9+YrJmnVlaKvdJ4+TIrzPjs9/xK5adr6H7Jq2o0XwuLTRWvnr/b2eycAt+52aWxQFEk ds7XCT/lbOC7z/kwbVOYgaDwWEcysjgfEK17q9t4OtQxvoQg3PvpuJyLdIZA8VwyGL4KJa 2b/XJny6uW1YOLgrmKcGOwpaGy1HP7Y= Received: from mail-wm1-f69.google.com (mail-wm1-f69.google.com [209.85.128.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-172-dnzVH3HYOES5n0LLWHt2HA-1; Wed, 30 Oct 2024 11:53:42 -0400 X-MC-Unique: dnzVH3HYOES5n0LLWHt2HA-1 Received: by mail-wm1-f69.google.com with SMTP id 5b1f17b1804b1-4315f48bd70so43220415e9.2 for ; Wed, 30 Oct 2024 08:53:41 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1730303620; x=1730908420; 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=VYJkKqEatwS6i9fKzk+ISSdt5a4kjJwCYp4gGWjJybE=; b=J42cO1ZrrcZ29qOS9iAibv75eh1DJy76EWgJMiO1ff/hO3jd3K4r1bipXKoLqfozY8 O8MLf4Rhw2YvYswfWoneEnbjik8ccI7Hs22nGUD7QuBKepXnrnvhqs1pFkf0H6vvo9Uf wPQTuIpBs9sQqUwye6HFOEaQXt7o+x6Z6XIsetGVZzPYEsgm/SznltSPk90Uds4o6a+c TiqOKIP2vP/2bD03TKGM9kTw5nirRqLTVvEoTYn8s4IzVI0L6c/bmx6Bs931VJ+cRVeZ goI8JON2QhAgDA59oNMRNl8ZvhJUf5UN1PqKSBA7RWyOTVBkVh6tyd8N83yWNxBCgJfL Qc5A== X-Gm-Message-State: AOJu0Yy3TWQk7cLBhn52ehvE0RlZ33OIEzs/Q74aQMuVCzktGdbv5apx 5nSOc8C5cr9CiojQBGIpet69aGEeM/w+g7fVwEiQ1Qr1JPLVA/fw0v9kLs5ID8JQMshYE+kG7sU 3y53xr2i3P9U6HS3KIL21pPlE6SReFX33dLKHdcuS5GoJrzXlZBkXLHt/4p/Ftifeisbj8pbgZu wyQw/45wjbxn3ANOU2K2IdDe6xu5N4pzr+0WrCfg0OFgs= X-Received: by 2002:a05:600c:4511:b0:42c:bd4d:e8ba with SMTP id 5b1f17b1804b1-4327b6f953dmr918685e9.8.1730303619656; Wed, 30 Oct 2024 08:53:39 -0700 (PDT) X-Google-Smtp-Source: AGHT+IH+VP9MYJ3heFbgdRBpgE5HjpS7A9G4Oy5sthlP8enU68sbz8cVL7cm4z5a8SZ2+MI8sqV4AA== X-Received: by 2002:a05:600c:4511:b0:42c:bd4d:e8ba with SMTP id 5b1f17b1804b1-4327b6f953dmr918445e9.8.1730303619188; Wed, 30 Oct 2024 08:53:39 -0700 (PDT) Received: from localhost (197.209.200.146.dyn.plus.net. [146.200.209.197]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-431bd9ca7ebsm25115835e9.42.2024.10.30.08.53.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 30 Oct 2024 08:53:38 -0700 (PDT) From: Andrew Burgess To: gdb-patches@sourceware.org Cc: Andrew Burgess Subject: [PATCH 1/2] gdb/readline: new 'maint info readline' command Date: Wed, 30 Oct 2024 15:53:34 +0000 Message-Id: X-Mailer: git-send-email 2.25.4 In-Reply-To: References: MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-Spam-Status: No, score=-11.9 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_NONE, 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 When debugging readline issues I'd like an easy way to know (for sure) what version of readline GDB is using. This could also be useful when writing readline tests, knowing the precise readline version will allow us to know if we expect a test to pass or not. Add a new 'maintenance info readline' command which will display the readline version string and a suffix indicating if we are using the system readline, or the statically linked in readline. Example usage (statically linked in readline): (gdb) maintenance info readline version: 8.1 (internal) Or (using older system readline): (gdb) maintenance info readline version: 8.0 (system) Reviewed-By: Eli Zaretskii --- gdb/NEWS | 3 +++ gdb/doc/gdb.texinfo | 16 ++++++++++++++++ gdb/event-top.c | 27 +++++++++++++++++++++++++++ gdb/testsuite/gdb.base/maint.exp | 3 +++ 4 files changed, 49 insertions(+) diff --git a/gdb/NEWS b/gdb/NEWS index 42b8a88fd8a..a8f8f2c8265 100644 --- a/gdb/NEWS +++ b/gdb/NEWS @@ -83,6 +83,9 @@ maintenance info blocks [ADDRESS] are listed starting at the inner global block out to the most inner block. +maintenance info readline + Displays the version of readline that GDB is using. + * Changed commands remove-symbol-file diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo index eb2aff974bb..3409382e54b 100644 --- a/gdb/doc/gdb.texinfo +++ b/gdb/doc/gdb.texinfo @@ -27520,6 +27520,10 @@ next line relative to the current line from the history for editing. Any argument is ignored. +It is possible to discover which version of readline @value{GDBN} is +using with the @kbd{maint info readline} command (@pxref{maint info +readline}). + @node Command History @section Command History @cindex command history @@ -42449,6 +42453,18 @@ Print various characteristics of the screen, such as various notions of width and height. +@anchor{maint info readline} +@kindex maint info readline +@cindex readline version, showing +@item maint info readline +Print the version number of the readline library @value{GDBN} is +using. + +After the version number will appear either @samp{(system)} indicating +@value{GDBN} is using the shared system readline library, or +@samp{(internal)} indicating @value{GDBN} is using a statically linked +in version of the readline library. + @kindex maint space @cindex memory used by commands @item maint space @var{value} diff --git a/gdb/event-top.c b/gdb/event-top.c index d3cf144958a..0d46dec1774 100644 --- a/gdb/event-top.c +++ b/gdb/event-top.c @@ -1454,6 +1454,24 @@ show_debug_event_loop_command (struct ui_file *file, int from_tty, gdb_printf (file, _("Event loop debugging is %s.\n"), value); } +/* Handle 'maint info readline' command. Print the version of readline + that GDB is using. */ + +static void +maintenance_info_readline (const char *arg, int from_tty) +{ + /* Is GDB using the system readline, or our own internal copy? */ + const char *suffix +#ifdef HAVE_READLINE_READLINE_H + = "\t(system)" +#else + = "\t(internal)" +#endif + ; + + gdb_printf ("version: %s%s\n", rl_library_version, suffix); +} + void _initialize_event_top (); void _initialize_event_top () @@ -1481,4 +1499,13 @@ crashes within GDB, not a mechanism for debugging inferiors."), show_bt_on_fatal_signal, &maintenance_set_cmdlist, &maintenance_show_cmdlist); + + add_cmd ("readline", class_maintenance, maintenance_info_readline, _("\ +Display information about version of readline being used.\n\ +\n\ +Displays which version of the readline library GDB is using\n\ +followed by either '(system)' or '(internal)' to indicate if\n\ +GDB is using the shared system library or a statically linked\n\ +in version of the library."), + &maintenanceinfolist); } diff --git a/gdb/testsuite/gdb.base/maint.exp b/gdb/testsuite/gdb.base/maint.exp index d6aa22321f1..d540783f5cb 100644 --- a/gdb/testsuite/gdb.base/maint.exp +++ b/gdb/testsuite/gdb.base/maint.exp @@ -381,6 +381,9 @@ gdb_test "maint" \ "List.*unambiguous\\..*" \ "maint w/o args" +gdb_test "maint info readline" \ + "^version: \[^\r\n\]+" + # Test that "main info line-table" w/o a file name shows the symtab for # $srcfile. set saw_srcfile 0