From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id nj5YD4hsvWnhjTEAWB0awg (envelope-from ) for ; Fri, 20 Mar 2026 11:49:28 -0400 Authentication-Results: simark.ca; dkim=pass (2048-bit key; unprotected) header.d=gnu.org header.i=@gnu.org header.a=rsa-sha256 header.s=fencepost-gnu-org header.b=PgySo447; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id 2BAEB1E0BC; Fri, 20 Mar 2026 11:49:28 -0400 (EDT) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-3.4 required=5.0 tests=ARC_SIGNED,ARC_VALID,BAYES_00, DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED,RCVD_IN_VALIDITY_CERTIFIED_BLOCKED, RCVD_IN_VALIDITY_RPBL_BLOCKED,RCVD_IN_VALIDITY_SAFE_BLOCKED autolearn=ham autolearn_force=no version=4.0.1 Received: from vm01.sourceware.org (vm01.sourceware.org [38.145.34.32]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id 0FB951E08C for ; Fri, 20 Mar 2026 11:49:27 -0400 (EDT) Received: from vm01.sourceware.org (localhost [127.0.0.1]) by sourceware.org (Postfix) with ESMTP id 7EB454B1A2C4 for ; Fri, 20 Mar 2026 15:49:26 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 7EB454B1A2C4 Authentication-Results: sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=gnu.org header.i=@gnu.org header.a=rsa-sha256 header.s=fencepost-gnu-org header.b=PgySo447 Received: from eggs.gnu.org (eggs.gnu.org [IPv6:2001:470:142:3::10]) by sourceware.org (Postfix) with ESMTPS id 699144B1A29C for ; Fri, 20 Mar 2026 15:48:46 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 699144B1A29C Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gnu.org Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gnu.org ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 699144B1A29C Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2001:470:142:3::10 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1774021726; cv=none; b=u1OKaXWMi5wWZfzo2LUcs+2gSeHSGiPailU+oqYi6JpcPvMkRySkO+LfThMpAPYaCtrKfE2HoGAuOg7QZqiWLJ6UI7VMeVh1pvdcFuY4bmOwI17hVCBm7ZxkLUEPBMs2uByvurJZhMT2TyzslfOew1gUGF3G+H7cv5aSQfTf70g= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1774021726; c=relaxed/simple; bh=RHWR6jEtreZDE0KtSnQ+TWAIECX9FVw7yFNP+jtb1eY=; h=DKIM-Signature:Date:Message-Id:From:To:Subject; b=Uxw5sjc8tfkX/yhKBwXXzNYVW1+eYsLyRLiHV/vIXvnQspe7sXYTjdALbRK90be76j0S0PhQ73o2dii5gkHF999tTEKzahY7I7hY/Pkdr/z9ioF8yAviPO6SMqhNOQWJ/IrmHBgStP9Oq+jckwXGrvp9JIroBQf4LwLWbqRV/Tc= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 699144B1A29C Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w3c5d-0004yr-Sq; Fri, 20 Mar 2026 11:48:45 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=UWCT172bd4+mwuEpG1kTnSwMcouj3M+3zHYXw0RWHk0=; b=PgySo447jd7E fuzfRVRdc4KyOhF/5iVikw15h3xPoHBpncPgXUVOMqWXkgydKOe68p42K6Aj8PClQWrplQ/tXnVUo 04N9MN8B3nWBtEqfqiRa/m8npKcr1mMLWr/KkkcikgbeEOYhloTJUiMeKlZmsz88qxxRyiGunmXLt b0PFDUJoIc52C3HmRfTMfaHOk69S7au4ilnaV28iRgCyp+6vtKaObFjSN35eUNcxl4iJoDnm+FSWI Z0LIWOYAq7bv3ZHfBqHuAVTcgZ6uRnEPAVTuue/Q5i3fDa9Xpz8vX7gkgA+6heAZWkLsXfEJVUhgh 6NRs2s4Wx+73Kv1bRvTxmA==; Date: Fri, 20 Mar 2026 17:48:40 +0200 Message-Id: <86h5qacxif.fsf@gnu.org> From: Eli Zaretskii To: Andrew Burgess Cc: gdb-patches@sourceware.org In-Reply-To: <2412723aff2f39ed778743b957d2ab8da51335e1.1774020654.git.aburgess@redhat.com> (message from Andrew Burgess on Fri, 20 Mar 2026 15:31:11 +0000) Subject: Re: [PATCH] gdb/python: allow Architecture.disassemble to give styled output References: <2412723aff2f39ed778743b957d2ab8da51335e1.1774020654.git.aburgess@redhat.com> 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~public-inbox=simark.ca@sourceware.org > From: Andrew Burgess > Cc: Andrew Burgess > Date: Fri, 20 Mar 2026 15:31:11 +0000 > > Extend the Architecture.disassemble API to allow the user to request > styled disassembler output via a new styling argument. A user can now > write: > > insn = arch.disassemble(address, styling = True) > > The instruction strings returned within INSN will contain ANSI escape > sequences so long as 'set style enabled on' is in effect. This means > that the user's personal settings (disabling styling) will override a > GDB extension that requests styled disassembler output. I think this > makes sense. > > The default for the styling argument is False, this maintains the > current unstyled output as default. > --- > gdb/NEWS | 5 + > gdb/doc/python.texi | 7 +- > gdb/python/py-arch.c | 11 +- > .../gdb.python/py-arch-disasm-style.c | 52 ++++++++ > .../gdb.python/py-arch-disasm-style.exp | 119 ++++++++++++++++++ > 5 files changed, 189 insertions(+), 5 deletions(-) > create mode 100644 gdb/testsuite/gdb.python/py-arch-disasm-style.c > create mode 100644 gdb/testsuite/gdb.python/py-arch-disasm-style.exp > > diff --git a/gdb/NEWS b/gdb/NEWS > index e46a5108272..da74c248c54 100644 > --- a/gdb/NEWS > +++ b/gdb/NEWS > @@ -229,6 +229,11 @@ qExecAndArgs > the appropriate user setting is enabled, and GDB knows how to > style this source file. > > + ** The Architecture.disassemble method accepts a new 'styling' > + argument, which defaults to False. When set to True the 'asm' > + strings in the disassembler output can contain ANSI escape > + sequences to indicate styling. > + > * Guile API This part is okay. > --- a/gdb/doc/python.texi > +++ b/gdb/doc/python.texi > @@ -7632,7 +7632,7 @@ Architectures In Python > Return the name (string value) of the architecture. > @end defun > > -@defun Architecture.disassemble (start_pc @r{[}, end_pc @r{[}, count@r{]]}) > +@defun Architecture.disassemble (start_pc @r{[}, end_pc @r{[}, count@r{]]} @w{@r{[}, styling = @code{False}@r{]}}) > Return a list of disassembled instructions starting from the memory > address @var{start_pc}. The optional arguments @var{end_pc} and > @var{count} determine the number of instructions in the returned list. > @@ -7661,6 +7661,11 @@ Architectures In Python > language flavor used is the same as that specified by the current CLI > variable @code{disassembly-flavor}. @xref{Machine Code}. > > +When the optional argument @var{styling} is @code{True} the @var{asm} > +string can contain ANSI terminal escape sequences if styling is > +enabled (@pxref{Output Styling}). When @var{styling} is @code{False}, > +which is the default, then no styling will be applied to @var{asm}. > + This is also okay, but I don't think @var is correct for "asm", since those are literal strings, not symbols that stand for something else. Thanks. Reviewed-By: Eli Zaretskii