From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id 790fBaQzFWiroxEAWB0awg (envelope-from ) for ; Fri, 02 May 2025 17:05:40 -0400 Authentication-Results: simark.ca; dkim=pass (2048-bit key; unprotected) header.d=jeremybryant.net header.i=@jeremybryant.net header.a=rsa-sha256 header.s=key1 header.b=O/wrkd3n; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id 00F0E1E10E; Fri, 2 May 2025 17:05:40 -0400 (EDT) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-9.1 required=5.0 tests=ARC_SIGNED,ARC_VALID,BAYES_00, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED,RCVD_IN_VALIDITY_CERTIFIED,RCVD_IN_VALIDITY_RPBL, RCVD_IN_VALIDITY_SAFE autolearn=ham autolearn_force=no version=4.0.1 Received: from server2.sourceware.org (server2.sourceware.org [8.43.85.97]) (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 B967A1E089 for ; Fri, 2 May 2025 17:05:38 -0400 (EDT) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 5820B3858289 for ; Fri, 2 May 2025 21:05:38 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 5820B3858289 Authentication-Results: sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=jeremybryant.net header.i=@jeremybryant.net header.a=rsa-sha256 header.s=key1 header.b=O/wrkd3n Received: from out-170.mta1.migadu.com (out-170.mta1.migadu.com [95.215.58.170]) by sourceware.org (Postfix) with ESMTPS id 3AA923858429 for ; Fri, 2 May 2025 21:05:01 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 3AA923858429 Authentication-Results: sourceware.org; dmarc=pass (p=quarantine dis=none) header.from=jeremybryant.net Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=jeremybryant.net ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 3AA923858429 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=95.215.58.170 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1746219901; cv=none; b=cDBTIF0QF0O70sAOjX44SdqQT+kpnGypr/vAjyPOlIhLnPuB7t5wf10UanSI3d+6WScH6d8HEK+HZSk+WcFKqegQpcGSHt/RmIALpQj71vol3gbwHS8OsOBgkLuJuWQnCH2E31AJdK6DDKxNcaZmH+th4UUGIukPQtaJRJSQDCk= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1746219901; c=relaxed/simple; bh=FsoZ9M90BFOOmIXvi0M40bv3YqgMskoWkKBDgmVLPFw=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=nJlDP3uaEB6l7a/rGfKYd4LS8iwaxIQZPadll0h38Cyvc35KKJQcH2QJ6/FYj+8BWg1xI8rPRCZGOgEZx2gX7QKcNvYsoQSNhFL/t8Fit5rX8+yoSwK0xo9nIzKiip0k9Gn7mQO8l1P69/TCkjGh9c3gD4WdtlY1gDRsHgFzMOw= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 3AA923858429 X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jeremybryant.net; s=key1; t=1746219900; 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: in-reply-to:in-reply-to:references:references; bh=qsOPEzWHV7bGYO+1fBQeVlV303gRWC6455goD/ItZAU=; b=O/wrkd3nVvZnOIKf3M53lSHrUSZfYnseW1dZQzGUI6boI33VTmzI8dW2hPR7zYuJ+PCFO2 HbGyZvQZzk+jCqji0hItiC/7Kq2KFLAcqRXgYNdnTfr/dbCOnioDv1UzjwgXCVHdLBUCbk 1mlSXzoBRZgXrZ811NgrIszUrqChylBGS4ndhPhfNp3AYZvKyn3DC46m1z2NlaGHyemkoJ N8FDeF4rws764ABVBWzSd1WVZRCe9nLazhsPIj2lyytHVf3A6uxiszO7nFnu9ZvNltfx0j +o6xKp8cjcj/MjfAg1kkVYrLqN8umPDcC6YZUerbZW9oEdLmwZkZOKxjMzs77w== From: Jeremy Bryant To: Eli Zaretskii Cc: gdb-patches@sourceware.org, tom@tromey.com Subject: [PATCH v2] * GDB Texinfo manual: Correctly reference Emacs facilities In-Reply-To: <86wmazlc02.fsf@gnu.org> (Eli Zaretskii's message of "Fri, 02 May 2025 10:15:09 +0300") References: <87msbwt263.fsf@jeremybryant.net> <868qnfmt38.fsf@gnu.org> <86wmazlc02.fsf@gnu.org> Date: Fri, 02 May 2025 22:04:56 +0100 Message-ID: <875xiiu3k7.fsf@jeremybryant.net> MIME-Version: 1.0 Content-Type: text/plain X-Migadu-Flow: FLOW_OUT 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 Eli Zaretskii writes: >> Date: Fri, 02 May 2025 09:20:43 +0300 >> From: Eli Zaretskii >> Cc: gdb-patches@sourceware.org, tom@tromey.com >> >> > From: Jeremy Bryant >> > Date: Thu, 01 May 2025 23:08:04 +0100 >> >> > More generally, I believe that this section predates the changes in >> > Emacs of M-x gdb vs M-x gud-gdb, so I will propose further patches down >> > the line. (vc-annotate indicates the text hasn't been updated in a long >> > time) >> >> In that case, I suggest to submit a single patch with all the changes >> together. It will make the job of reviewing the patch easier. > > On second thought, perhaps the GDB manual should just mention the > Emacs front-end shortly, and point to the Emacs manual for the > details? It is sub-optimal to have the GDB-related features described > in two manuals maintained by 23 different projects; doing that will > necessarily risk incompatibilities and inconsistencies. OK, agree it is suboptimal to duplicate, and the existing text appears out-of-date (not updated in two decades). I've revised the introduction, adapting styles from the previous section introduction and the current Emacs manual (30.1) Revised patch, in-line, below. WDYT? >From ed9de3eae5cb72ae755994832a32d2817741e92a Mon Sep 17 00:00:00 2001 From: Jeremy Bryant Date: Fri, 2 May 2025 21:56:35 +0100 Subject: [PATCH] * gdb/doc/gdb.texinfo (Emacs): Refer to Emacs manual The manual section on using GDB under Emacs is out-of-date and duplicates existing and comprehensive documentation in the Emacs manual. Replace the section by a short introduction and reference. --- gdb/doc/gdb.texinfo | 135 ++------------------------------------------ 1 file changed, 5 insertions(+), 130 deletions(-) diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo index 9b4aa5b47b2..ed812e5ec05 100644 --- a/gdb/doc/gdb.texinfo +++ b/gdb/doc/gdb.texinfo @@ -31292,138 +31292,13 @@ appropriate @code{set style} commands. @xref{Output Styling}. @cindex Emacs @cindex @sc{gnu} Emacs -A special interface allows you to use @sc{gnu} Emacs to view (and -edit) the source files for the program you are debugging with -@value{GDBN}. - -To use this interface, use the command @kbd{M-x gdb} in Emacs. Give the -executable file you want to debug as an argument. This command starts -@value{GDBN} as a subprocess of Emacs, with input and output through a newly -created Emacs buffer. -@c (Do not use the @code{-tui} option to run @value{GDBN} from Emacs.) - -Running @value{GDBN} under Emacs can be just like running @value{GDBN} normally except for two -things: - -@itemize @bullet -@item -All ``terminal'' input and output goes through an Emacs buffer, called -the GUD buffer. - -This applies both to @value{GDBN} commands and their output, and to the input -and output done by the program you are debugging. - -This is useful because it means that you can copy the text of previous -commands and input them again; you can even use parts of the output -in this way. - -All the facilities of Emacs' Shell mode are available for interacting -with your program. In particular, you can send signals the usual -way---for example, @kbd{C-c C-c} for an interrupt, @kbd{C-c C-z} for a -stop. - -@item -@value{GDBN} displays source code through Emacs. - -Each time @value{GDBN} displays a stack frame, Emacs automatically finds the -source file for that frame and puts an arrow (@samp{=>}) at the -left margin of the current line. Emacs uses a separate buffer for -source display, and splits the screen to show both your @value{GDBN} session -and the source. - -Explicit @value{GDBN} @code{list} or search commands still produce output as -usual, but you probably have no reason to use them from Emacs. -@end itemize - -We call this @dfn{text command mode}. Emacs 22.1, and later, also uses -a graphical mode, enabled by default, which provides further buffers -that can control the execution and describe the state of your program. -@xref{GDB Graphical Interface,,, Emacs, The @sc{gnu} Emacs Manual}. - -If you specify an absolute file name when prompted for the @kbd{M-x -gdb} argument, then Emacs sets your current working directory to where -your program resides. If you only specify the file name, then Emacs -sets your current working directory to the directory associated -with the previous buffer. In this case, @value{GDBN} may find your -program by searching your environment's @env{PATH} variable, but on -some operating systems it might not find the source. So, although the -@value{GDBN} input and output session proceeds normally, the auxiliary -buffer does not display the current source and line of execution. - -The initial working directory of @value{GDBN} is printed on the top -line of the GUD buffer and this serves as a default for the commands -that specify files for @value{GDBN} to operate on. @xref{Files, -,Commands to Specify Files}. - -By default, @kbd{M-x gdb} calls the program called @file{gdb}. If you -need to call @value{GDBN} by a different name (for example, if you -keep several configurations around, with different names) you can -customize the Emacs variable @code{gud-gdb-command-name} to run the -one you want. - -In the GUD buffer, you can use these special Emacs commands in -addition to the standard Shell mode commands: - -@table @kbd -@item C-h m -Describe the features of Emacs' GUD Mode. - -@item C-c C-s -Execute to another source line, like the @value{GDBN} @code{step} command; also -update the display window to show the current file and location. - -@item C-c C-n -Execute to next source line in this function, skipping all function -calls, like the @value{GDBN} @code{next} command. Then update the display window -to show the current file and location. - -@item C-c C-i -Execute one instruction, like the @value{GDBN} @code{stepi} command; update -display window accordingly. - -@item C-c C-f -Execute until exit from the selected stack frame, like the @value{GDBN} -@code{finish} command. - -@item C-c C-r -Continue execution of your program, like the @value{GDBN} @code{continue} -command. - -@item C-c < -Go up the number of frames indicated by the numeric argument -(@pxref{Arguments, , Numeric Arguments, Emacs, The @sc{gnu} Emacs Manual}), -like the @value{GDBN} @code{up} command. - -@item C-c > -Go down the number of frames indicated by the numeric argument, like the -@value{GDBN} @code{down} command. -@end table - -In any source file, the Emacs command @kbd{C-x @key{SPC}} (@code{gud-break}) -tells @value{GDBN} to set a breakpoint on the source line point is on. - -In text command mode, if you type @kbd{M-x speedbar}, Emacs displays a -separate frame which shows a backtrace when the GUD buffer is current. -Move point to any frame in the stack and type @key{RET} to make it -become the current frame and display the associated source in the -source buffer. Alternatively, click @kbd{Mouse-2} to make the -selected frame become the current one. In graphical mode, the -speedbar displays watch expressions. - -If you accidentally delete the source-display buffer, an easy way to get -it back is to type the command @code{f} in the @value{GDBN} buffer, to -request a frame display; when you run under Emacs, this recreates -the source buffer if necessary to show you the context of the current -frame. -The source files displayed in Emacs are in ordinary Emacs buffers -which are visiting the source files in the usual way. You can edit -the files with these buffers if you wish; but keep in mind that @value{GDBN} -communicates with Emacs in terms of line numbers. If you add or -delete lines from the text, the line numbers that @value{GDBN} knows cease -to correspond properly with the code. +In @sc{gnu} Emacs there is a special interface to @value{GDBN}, which +facilitates viewing the source code for the program you are debugging. +There is also an IDE-like interface to GDB, with specialized buffers for +breakpoints, stack frames and other aspects of the debugger state. -A more detailed description of Emacs' interaction with @value{GDBN} is +A detailed description of Emacs' interaction with @value{GDBN} is given in the Emacs manual (@pxref{Debuggers,,, Emacs, The @sc{gnu} Emacs Manual}). -- 2.47.2