* Debug Fortran 90 code in Emacs with arguments. @ 2022-04-05 2:27 Hongyi Zhao 2022-04-05 11:18 ` Eli Zaretskii 0 siblings, 1 reply; 21+ messages in thread From: Hongyi Zhao @ 2022-04-05 2:27 UTC (permalink / raw) To: help-gnu-emacs I've the following Fortran 90 code snippet adapted from here [1]: ``` program echo_command_line integer i, cnt, len, status character c*100, b*100 call get_command (b, len, status) if (status .ne. 0) then write (*,*) 'get_command failed with status = ', status stop end if write (*,*) 'command line = ', b (1:len) call get_command_argument (0, c, len, status) if (status .ne. 0) then write (*,*) 'Getting command name failed with status = ', status stop end if write (*,*) 'command name = ', c (1:len) cnt = command_argument_count () write (*,*) 'number of command arguments = ', cnt do i = 1, cnt call get_command_argument (i, c, len, status) if (status .ne. 0) then write (*,*) 'get_command_argument failed: status = ', status, ' arg = ', i stop end if write (*,*) 'command arg ', i, ' = ', c (1:len) end do write (*,*) 'command line processed' end ``` The above code snippet must be run and debug with some arguments, say, as follows: -o 42 -a hello b So, I want to know how to debug Fortran 90 code in Emacs with arguments. [1] https://www.intel.com/content/www/us/en/develop/documentation/fortran-compiler-oneapi-dev-guide-and-reference/top/language-reference/a-to-z-reference/c-to-d/command-argument-count.html#command-argument-count Regards -- Assoc. Prof. Hongsheng Zhao <hongyi.zhao@gmail.com> Theory and Simulation of Materials Hebei Vocational University of Technology and Engineering No. 473, Quannan West Street, Xindu District, Xingtai, Hebei province ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Debug Fortran 90 code in Emacs with arguments. 2022-04-05 2:27 Debug Fortran 90 code in Emacs with arguments Hongyi Zhao @ 2022-04-05 11:18 ` Eli Zaretskii 2022-04-05 12:57 ` Hongyi Zhao 0 siblings, 1 reply; 21+ messages in thread From: Eli Zaretskii @ 2022-04-05 11:18 UTC (permalink / raw) To: help-gnu-emacs > From: Hongyi Zhao <hongyi.zhao@gmail.com> > Date: Tue, 5 Apr 2022 10:27:41 +0800 > > The above code snippet must be run and debug with some arguments, say, > as follows: > > -o 42 -a hello b > > So, I want to know how to debug Fortran 90 code in Emacs with arguments. Use GDB via the "M-x gdb" Emacs front-end. ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Debug Fortran 90 code in Emacs with arguments. 2022-04-05 11:18 ` Eli Zaretskii @ 2022-04-05 12:57 ` Hongyi Zhao 2022-04-05 13:00 ` Hongyi Zhao 0 siblings, 1 reply; 21+ messages in thread From: Hongyi Zhao @ 2022-04-05 12:57 UTC (permalink / raw) To: Eli Zaretskii; +Cc: help-gnu-emacs On Tue, Apr 5, 2022 at 7:18 PM Eli Zaretskii <eliz@gnu.org> wrote: > > > From: Hongyi Zhao <hongyi.zhao@gmail.com> > > Date: Tue, 5 Apr 2022 10:27:41 +0800 > > > > The above code snippet must be run and debug with some arguments, say, > > as follows: > > > > -o 42 -a hello b > > > > So, I want to know how to debug Fortran 90 code in Emacs with arguments. > > Use GDB via the "M-x gdb" Emacs front-end. I tried with the following steps, but still failed to figure it out: 1. $ emacs the_fortran_example.f90 2. In Emacs, issue the command `M-x gdb RET`. At this point, I see the following information: ``` Current directory is ~/temp/FortranProject/bilbao_read/ GNU gdb (Ubuntu 9.2-0ubuntu1~20.04) 9.2 Copyright (C) 2020 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-linux-gnu". Type "show configuration" for configuration details. For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>. Find the GDB manual and other documentation resources online at: <http://www.gnu.org/software/gdb/documentation/>. For help, type "help". Type "apropos word" to search for commands related to "word"... gfotran: No such file or directory. (gdb) exec-file get_command_argument.f90 "/home/werner/temp/FortranProject/bilbao_read/get_command_argument.f90": not in executable format: file format not recognized exit Undefined command: "exit". Try "help". (gdb) q Debugger finished Current directory is ~/temp/FortranProject/bilbao_read/ GNU gdb (Ubuntu 9.2-0ubuntu1~20.04) 9.2 Copyright (C) 2020 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-linux-gnu". Type "show configuration" for configuration details. For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>. Find the GDB manual and other documentation resources online at: <http://www.gnu.org/software/gdb/documentation/>. For help, type "help". Type "apropos word" to search for commands related to "word"... gfotran: No such file or directory. (gdb) q Debugger finished Current directory is ~/temp/FortranProject/bilbao_read/ GNU gdb (Ubuntu 9.2-0ubuntu1~20.04) 9.2 Copyright (C) 2020 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-linux-gnu". Type "show configuration" for configuration details. For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>. Find the GDB manual and other documentation resources online at: <http://www.gnu.org/software/gdb/documentation/>. For help, type "help". Type "apropos word" to search for commands related to "word"... gfotran: No such file or directory. (gdb) ``` How to do next? Regards -- Assoc. Prof. Hongsheng Zhao <hongyi.zhao@gmail.com> Theory and Simulation of Materials Hebei Vocational University of Technology and Engineering No. 473, Quannan West Street, Xindu District, Xingtai, Hebei province ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Debug Fortran 90 code in Emacs with arguments. 2022-04-05 12:57 ` Hongyi Zhao @ 2022-04-05 13:00 ` Hongyi Zhao 2022-04-05 13:19 ` Eli Zaretskii 0 siblings, 1 reply; 21+ messages in thread From: Hongyi Zhao @ 2022-04-05 13:00 UTC (permalink / raw) To: Eli Zaretskii; +Cc: help-gnu-emacs On Tue, Apr 5, 2022 at 8:57 PM Hongyi Zhao <hongyi.zhao@gmail.com> wrote: > > On Tue, Apr 5, 2022 at 7:18 PM Eli Zaretskii <eliz@gnu.org> wrote: > > > > > From: Hongyi Zhao <hongyi.zhao@gmail.com> > > > Date: Tue, 5 Apr 2022 10:27:41 +0800 > > > > > > The above code snippet must be run and debug with some arguments, say, > > > as follows: > > > > > > -o 42 -a hello b > > > > > > So, I want to know how to debug Fortran 90 code in Emacs with arguments. > > > > Use GDB via the "M-x gdb" Emacs front-end. > > I tried with the following steps, but still failed to figure it out: > > 1. $ emacs the_fortran_example.f90 > 2. In Emacs, issue the command `M-x gdb RET`. Then I see the following setting in minibuffer, and I just hit RET to use it: gdb -i=mi gfotran > > At this point, I see the following information: > > ``` > Current directory is ~/temp/FortranProject/bilbao_read/ > GNU gdb (Ubuntu 9.2-0ubuntu1~20.04) 9.2 > Copyright (C) 2020 Free Software Foundation, Inc. > License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> > This is free software: you are free to change and redistribute it. > There is NO WARRANTY, to the extent permitted by law. > Type "show copying" and "show warranty" for details. > This GDB was configured as "x86_64-linux-gnu". > Type "show configuration" for configuration details. > For bug reporting instructions, please see: > <http://www.gnu.org/software/gdb/bugs/>. > Find the GDB manual and other documentation resources online at: > <http://www.gnu.org/software/gdb/documentation/>. > > For help, type "help". > Type "apropos word" to search for commands related to "word"... > gfotran: No such file or directory. > (gdb) exec-file get_command_argument.f90 > "/home/werner/temp/FortranProject/bilbao_read/get_command_argument.f90": > not in executable format: file format not recognized > exit > Undefined command: "exit". Try "help". > (gdb) q > > Debugger finished > Current directory is ~/temp/FortranProject/bilbao_read/ > GNU gdb (Ubuntu 9.2-0ubuntu1~20.04) 9.2 > Copyright (C) 2020 Free Software Foundation, Inc. > License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> > This is free software: you are free to change and redistribute it. > There is NO WARRANTY, to the extent permitted by law. > Type "show copying" and "show warranty" for details. > This GDB was configured as "x86_64-linux-gnu". > Type "show configuration" for configuration details. > For bug reporting instructions, please see: > <http://www.gnu.org/software/gdb/bugs/>. > Find the GDB manual and other documentation resources online at: > <http://www.gnu.org/software/gdb/documentation/>. > > For help, type "help". > Type "apropos word" to search for commands related to "word"... > gfotran: No such file or directory. > (gdb) q > > Debugger finished > Current directory is ~/temp/FortranProject/bilbao_read/ > GNU gdb (Ubuntu 9.2-0ubuntu1~20.04) 9.2 > Copyright (C) 2020 Free Software Foundation, Inc. > License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> > This is free software: you are free to change and redistribute it. > There is NO WARRANTY, to the extent permitted by law. > Type "show copying" and "show warranty" for details. > This GDB was configured as "x86_64-linux-gnu". > Type "show configuration" for configuration details. > For bug reporting instructions, please see: > <http://www.gnu.org/software/gdb/bugs/>. > Find the GDB manual and other documentation resources online at: > <http://www.gnu.org/software/gdb/documentation/>. > > For help, type "help". > Type "apropos word" to search for commands related to "word"... > gfotran: No such file or directory. > (gdb) > ``` > > How to do next? > > Regards > -- > Assoc. Prof. Hongsheng Zhao <hongyi.zhao@gmail.com> > Theory and Simulation of Materials > Hebei Vocational University of Technology and Engineering > No. 473, Quannan West Street, Xindu District, Xingtai, Hebei province ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Debug Fortran 90 code in Emacs with arguments. 2022-04-05 13:00 ` Hongyi Zhao @ 2022-04-05 13:19 ` Eli Zaretskii 2022-04-05 13:23 ` Eli Zaretskii 2022-04-05 14:19 ` Hongyi Zhao 0 siblings, 2 replies; 21+ messages in thread From: Eli Zaretskii @ 2022-04-05 13:19 UTC (permalink / raw) To: help-gnu-emacs > From: Hongyi Zhao <hongyi.zhao@gmail.com> > Date: Tue, 5 Apr 2022 21:00:31 +0800 > Cc: help-gnu-emacs <help-gnu-emacs@gnu.org> > > > > Use GDB via the "M-x gdb" Emacs front-end. > > > > I tried with the following steps, but still failed to figure it out: > > > > 1. $ emacs the_fortran_example.f90 > > 2. In Emacs, issue the command `M-x gdb RET`. > > Then I see the following setting in minibuffer, and I just hit RET to use it: > > gdb -i=mi gfotran Is 'gfortran' the name of your program's executable file? If not, edit the command to replace "gfortran" with the name of your program's executable file. If you never used a "M-x gdb" in Emacs, I suggest to read the section "GDB Graphical Interface" (and its sub-sections) in the Emacs manual. ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Debug Fortran 90 code in Emacs with arguments. 2022-04-05 13:19 ` Eli Zaretskii @ 2022-04-05 13:23 ` Eli Zaretskii 2022-04-05 13:52 ` Hongyi Zhao 2022-04-05 14:19 ` Hongyi Zhao 1 sibling, 1 reply; 21+ messages in thread From: Eli Zaretskii @ 2022-04-05 13:23 UTC (permalink / raw) To: help-gnu-emacs > Date: Tue, 05 Apr 2022 16:19:09 +0300 > From: Eli Zaretskii <eliz@gnu.org> > > If you never used a "M-x gdb" in Emacs, I suggest to read the section > "GDB Graphical Interface" (and its sub-sections) in the Emacs manual. Another suggested reading is the "Sample Session" section in the GDB manual. ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Debug Fortran 90 code in Emacs with arguments. 2022-04-05 13:23 ` Eli Zaretskii @ 2022-04-05 13:52 ` Hongyi Zhao 2022-04-05 14:02 ` Eli Zaretskii 0 siblings, 1 reply; 21+ messages in thread From: Hongyi Zhao @ 2022-04-05 13:52 UTC (permalink / raw) To: Eli Zaretskii; +Cc: help-gnu-emacs On Tue, Apr 5, 2022 at 9:23 PM Eli Zaretskii <eliz@gnu.org> wrote: > > > Date: Tue, 05 Apr 2022 16:19:09 +0300 > > From: Eli Zaretskii <eliz@gnu.org> > > > > If you never used a "M-x gdb" in Emacs, I suggest to read the section > > "GDB Graphical Interface" (and its sub-sections) in the Emacs manual. > > Another suggested reading is the "Sample Session" section in the GDB > manual. Do you mean this one? https://ftp.gnu.org/old-gnu/Manuals/gdb/html_node/gdb_4.html#SEC5 Yours, Hongyi ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Debug Fortran 90 code in Emacs with arguments. 2022-04-05 13:52 ` Hongyi Zhao @ 2022-04-05 14:02 ` Eli Zaretskii 2022-04-05 14:14 ` Hongyi Zhao 0 siblings, 1 reply; 21+ messages in thread From: Eli Zaretskii @ 2022-04-05 14:02 UTC (permalink / raw) To: help-gnu-emacs > From: Hongyi Zhao <hongyi.zhao@gmail.com> > Date: Tue, 5 Apr 2022 21:52:36 +0800 > Cc: help-gnu-emacs <help-gnu-emacs@gnu.org> > > > Another suggested reading is the "Sample Session" section in the GDB > > manual. > > Do you mean this one? > > https://ftp.gnu.org/old-gnu/Manuals/gdb/html_node/gdb_4.html#SEC5 If you have GDB installed, you should have the manual on your system, in Info format, suitable for reading in Emacs. Try C-h i m gdb RET But if you for some reason must read the HTML version with your browser, it is better to read the latest version: https://sourceware.org/gdb/current/onlinedocs/gdb/Sample-Session.html#Sample-Session ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Debug Fortran 90 code in Emacs with arguments. 2022-04-05 14:02 ` Eli Zaretskii @ 2022-04-05 14:14 ` Hongyi Zhao 0 siblings, 0 replies; 21+ messages in thread From: Hongyi Zhao @ 2022-04-05 14:14 UTC (permalink / raw) To: Eli Zaretskii; +Cc: help-gnu-emacs On Tue, Apr 5, 2022 at 10:02 PM Eli Zaretskii <eliz@gnu.org> wrote: > > > From: Hongyi Zhao <hongyi.zhao@gmail.com> > > Date: Tue, 5 Apr 2022 21:52:36 +0800 > > Cc: help-gnu-emacs <help-gnu-emacs@gnu.org> > > > > > Another suggested reading is the "Sample Session" section in the GDB > > > manual. > > > > Do you mean this one? > > > > https://ftp.gnu.org/old-gnu/Manuals/gdb/html_node/gdb_4.html#SEC5 > > If you have GDB installed, you should have the manual on your system, > in Info format, suitable for reading in Emacs. Try > > C-h i > m gdb RET Thank you for your tip. Supplementary note: The following package needs to be installed first on Debian derivative distributions: $ sudo apt install gdb-doc > But if you for some reason must read the HTML version with your > browser, it is better to read the latest version: > > https://sourceware.org/gdb/current/onlinedocs/gdb/Sample-Session.html#Sample-Session I am grateful for your information. Regards, Hongyi ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Debug Fortran 90 code in Emacs with arguments. 2022-04-05 13:19 ` Eli Zaretskii 2022-04-05 13:23 ` Eli Zaretskii @ 2022-04-05 14:19 ` Hongyi Zhao 2022-04-05 15:52 ` Eli Zaretskii 1 sibling, 1 reply; 21+ messages in thread From: Hongyi Zhao @ 2022-04-05 14:19 UTC (permalink / raw) To: Eli Zaretskii; +Cc: help-gnu-emacs On Tue, Apr 5, 2022 at 9:19 PM Eli Zaretskii <eliz@gnu.org> wrote: > > > From: Hongyi Zhao <hongyi.zhao@gmail.com> > > Date: Tue, 5 Apr 2022 21:00:31 +0800 > > Cc: help-gnu-emacs <help-gnu-emacs@gnu.org> > > > > > > Use GDB via the "M-x gdb" Emacs front-end. > > > > > > I tried with the following steps, but still failed to figure it out: > > > > > > 1. $ emacs the_fortran_example.f90 > > > 2. In Emacs, issue the command `M-x gdb RET`. > > > > Then I see the following setting in minibuffer, and I just hit RET to use it: > > > > gdb -i=mi gfotran > > Is 'gfortran' the name of your program's executable file? If not, > edit the command to replace "gfortran" with the name of your program's > executable file. I tried as follows, but still failed: M-x gdb RET # 1 2 are arguments passed to the program: Run gdb (like this): gdb -i=mi ./bin/Debug/bilbao_read 1 2 Then I encounter the following rather messy information: ``` Current directory is /home/werner/temp/FortranProject/bilbao_read/bin/Debug/ Error: Either -i=mi wasn’t specified on the GDB command line, or the extra socket couldn’t be established. Consider using M-x gud-gdb instead. Excess command line arguments ignored. (2) =thread-group-added,id="i1" ~"GNU gdb (Ubuntu 9.2-0ubuntu1~20.04) 9.2\n" ~"Copyright (C) 2020 Free Software Foundation, Inc.\n" ~"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\nThis is free software: you are free to change and redistribute it.\nThere is NO WARRANTY, to the extent permitted by law." ~"\nType \"show copying\" and \"show warranty\" for details.\n" ~"This GDB was configured as \"x86_64-linux-gnu\".\n" ~"Type \"show configuration\" for configuration details.\n" ~"For bug reporting instructions, please see:\n" ~"<http://www.gnu.org/software/gdb/bugs/>.\n" ~"Find the GDB manual and other documentation resources online at:\n <http://www.gnu.org/software/gdb/documentation/>." ~"\n\n" ~"For help, type \"help\".\n" ~"Type \"apropos word\" to search for commands related to \"word\"...\n" ~"Reading symbols from /home/werner/temp/FortranProject/bilbao_read/bin/Debug/bilbao_read...\n" ~"Attaching to program: /home/werner/temp/FortranProject/bilbao_read/bin/Debug/bilbao_read, process 1\n" &"Could not attach to process. If your uid matches the uid of the target\nprocess, check the setting of /proc/sys/kernel/yama/ptrace_scope, or try\nagain as the root user. For more details, see /etc/sysctl.d/10-ptrace.conf\n" &"ptrace: Operation not permitted.\n" &"/home/werner/temp/FortranProject/bilbao_read/bin/Debug/1: No such file or directory.\n" (gdb) 1^done (gdb) 2^done (gdb) 3^done (gdb) 4^done (gdb) 5^done (gdb) 6^done,files=[{file="get_command_argument.f90",fullname="/home/werner/temp/FortranProject/bilbao_read/get_command_argument.f90"}] (gdb) 7^done,line="24",file="get_command_argument.f90",fullname="/home/werner/temp/FortranProject/bilbao_read/get_command_argument.f90",macro-info="0" (gdb) 8^done,value="(gdb) " (gdb) 9^error,msg="No registers." (gdb) 10^done,threads=[] (gdb) 11^done,BreakpointTable={nr_rows="0",nr_cols="6",hdr=[{width="7",alignment="-1",col_name="number",colhdr="Num"},{width="14",alignment="-1",col_name="type",colhdr="Type"},{width="4",alignment="-1",col_name="disp",colhdr="Disp"},{width="3",alignment="-1",col_name="enabled",colhdr="Enb"},{width="10",alignment="-1",col_name="addr",colhdr="Address"},{width="40",alignment="2",col_name="what",colhdr="What"}],body=[]} (gdb) 12^done,threads=[] (gdb) 13^done,BreakpointTable={nr_rows="0",nr_cols="6",hdr=[{width="7",alignment="-1",col_name="number",colhdr="Num"},{width="14",alignment="-1",col_name="type",colhdr="Type"},{width="4",alignment="-1",col_name="disp",colhdr="Disp"},{width="3",alignment="-1",col_name="enabled",colhdr="Enb"},{width="10",alignment="-1",col_name="addr",colhdr="Address"},{width="40",alignment="2",col_name="what",colhdr="What"}],body=[]} (gdb) ``` Yours, Hongyi ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Debug Fortran 90 code in Emacs with arguments. 2022-04-05 14:19 ` Hongyi Zhao @ 2022-04-05 15:52 ` Eli Zaretskii 2022-04-06 1:46 ` Hongyi Zhao 2022-04-06 2:26 ` Hongyi Zhao 0 siblings, 2 replies; 21+ messages in thread From: Eli Zaretskii @ 2022-04-05 15:52 UTC (permalink / raw) To: help-gnu-emacs > From: Hongyi Zhao <hongyi.zhao@gmail.com> > Date: Tue, 5 Apr 2022 22:19:54 +0800 > Cc: help-gnu-emacs <help-gnu-emacs@gnu.org> > > > > gdb -i=mi gfotran > > > > Is 'gfortran' the name of your program's executable file? If not, > > edit the command to replace "gfortran" with the name of your program's > > executable file. > > I tried as follows, but still failed: > > M-x gdb RET > # 1 2 are arguments passed to the program: > Run gdb (like this): gdb -i=mi ./bin/Debug/bilbao_read 1 2 > > Then I encounter the following rather messy information: You use a non-trivial tool for the first time, so you should at least study its --help screen. That's not how you pass command-line arguments to a program being debugged. You need to use --args: gdb -i=mi --args ./bin/Debug/bilbao_read 1 2 ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Debug Fortran 90 code in Emacs with arguments. 2022-04-05 15:52 ` Eli Zaretskii @ 2022-04-06 1:46 ` Hongyi Zhao 2022-04-06 2:32 ` Eli Zaretskii 2022-04-06 2:26 ` Hongyi Zhao 1 sibling, 1 reply; 21+ messages in thread From: Hongyi Zhao @ 2022-04-06 1:46 UTC (permalink / raw) To: Eli Zaretskii; +Cc: help-gnu-emacs On Tue, Apr 5, 2022 at 11:52 PM Eli Zaretskii <eliz@gnu.org> wrote: > > > From: Hongyi Zhao <hongyi.zhao@gmail.com> > > Date: Tue, 5 Apr 2022 22:19:54 +0800 > > Cc: help-gnu-emacs <help-gnu-emacs@gnu.org> > > > > > > gdb -i=mi gfotran > > > > > > Is 'gfortran' the name of your program's executable file? If not, > > > edit the command to replace "gfortran" with the name of your program's > > > executable file. > > > > I tried as follows, but still failed: > > > > M-x gdb RET > > # 1 2 are arguments passed to the program: > > Run gdb (like this): gdb -i=mi ./bin/Debug/bilbao_read 1 2 > > > > Then I encounter the following rather messy information: > > You use a non-trivial tool for the first time, so you should at least > study its --help screen. That's not how you pass command-line > arguments to a program being debugged. You need to use --args: > > gdb -i=mi --args ./bin/Debug/bilbao_read 1 2 This works, but I noticed the following information: Target doesn’t support non-stop mode. Turning it off. Some additional remarks: 1. GDB itself is quite complex to use. Not to mention using it in Emacs. Therefore, it is indeed an extraordinary tool for users who use it for the first time. 2. I figured out the meaning of the above-mentioned options used in the example here, as shown below, found from the info manual: $ info gdb '-interpreter INTERP' Use the interpreter INTERP for interface with the controlling program or device. This option is meant to be set by programs which communicate with GDB using it as a back end. *Note Command Interpreters: Interpreters. '--interpreter=mi' (or '--interpreter=mi3') causes GDB to use the "GDB/MI interface" version 3 (*note The GDB/MI Interface: GDB/MI.) included since GDB version 9.1. GDB/MI version 2 ('mi2'), included in GDB 6.0 and version 1 ('mi1'), included in GDB 5.3, are also available. Earlier GDB/MI interfaces are no longer supported. '--args' Change interpretation of command line so that arguments following the executable file are passed as command line arguments to the inferior. This option stops option processing. But I can't find any explanation that the `-interpreter' can be abbreviated as `-i'. Regards, Hongyi ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Debug Fortran 90 code in Emacs with arguments. 2022-04-06 1:46 ` Hongyi Zhao @ 2022-04-06 2:32 ` Eli Zaretskii 2022-04-06 3:02 ` Hongyi Zhao 0 siblings, 1 reply; 21+ messages in thread From: Eli Zaretskii @ 2022-04-06 2:32 UTC (permalink / raw) To: help-gnu-emacs > From: Hongyi Zhao <hongyi.zhao@gmail.com> > Date: Wed, 6 Apr 2022 09:46:27 +0800 > Cc: help-gnu-emacs <help-gnu-emacs@gnu.org> > > > gdb -i=mi --args ./bin/Debug/bilbao_read 1 2 > > This works, but I noticed the following information: > > Target doesn’t support non-stop mode. Turning it off. This depends on your system, and is generally not a problem. > But I can't find any explanation that the `-interpreter' can be > abbreviated as `-i'. From the manual: Many options have both long and short forms; both are shown in the following list. GDB also recognizes the long forms if you truncate them, so long as enough of the option is present to be unambiguous. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Debug Fortran 90 code in Emacs with arguments. 2022-04-06 2:32 ` Eli Zaretskii @ 2022-04-06 3:02 ` Hongyi Zhao 0 siblings, 0 replies; 21+ messages in thread From: Hongyi Zhao @ 2022-04-06 3:02 UTC (permalink / raw) To: Eli Zaretskii; +Cc: help-gnu-emacs On Wed, Apr 6, 2022 at 10:32 AM Eli Zaretskii <eliz@gnu.org> wrote: > > > From: Hongyi Zhao <hongyi.zhao@gmail.com> > > Date: Wed, 6 Apr 2022 09:46:27 +0800 > > Cc: help-gnu-emacs <help-gnu-emacs@gnu.org> > > > > > gdb -i=mi --args ./bin/Debug/bilbao_read 1 2 > > > > This works, but I noticed the following information: > > > > Target doesn’t support non-stop mode. Turning it off. > > This depends on your system, and is generally not a problem. Here is a concise tutorial [1]. > > But I can't find any explanation that the `-interpreter' can be > > abbreviated as `-i'. > > From the manual: > > Many options have both long and short forms; both are shown in the > following list. GDB also recognizes the long forms if you truncate > them, so long as enough of the option is present to be unambiguous. > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Thank you for pointing this out, and I have confirmed it as follows: $ gdb --version GNU gdb (Ubuntu 9.2-0ubuntu1~20.04) 9.2 $ info gdb|grep -m1 -A2 -B2 'as enough of ' Many options have both long and short forms; both are shown in the following list. GDB also recognizes the long forms if you truncate them, so long as enough of the option is present to be unambiguous. (If you prefer, you can flag option arguments with '--' rather than '-', though we illustrate the more usual convention.) [1] http://c.biancheng.net/view/8270.html Regards, Hongyi ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Debug Fortran 90 code in Emacs with arguments. 2022-04-05 15:52 ` Eli Zaretskii 2022-04-06 1:46 ` Hongyi Zhao @ 2022-04-06 2:26 ` Hongyi Zhao 2022-04-06 10:50 ` Eli Zaretskii 1 sibling, 1 reply; 21+ messages in thread From: Hongyi Zhao @ 2022-04-06 2:26 UTC (permalink / raw) To: Eli Zaretskii; +Cc: help-gnu-emacs On Tue, Apr 5, 2022 at 11:52 PM Eli Zaretskii <eliz@gnu.org> wrote: > > > From: Hongyi Zhao <hongyi.zhao@gmail.com> > > Date: Tue, 5 Apr 2022 22:19:54 +0800 > > Cc: help-gnu-emacs <help-gnu-emacs@gnu.org> > > > > > > gdb -i=mi gfotran > > > > > > Is 'gfortran' the name of your program's executable file? If not, > > > edit the command to replace "gfortran" with the name of your program's > > > executable file. > > > > I tried as follows, but still failed: > > > > M-x gdb RET > > # 1 2 are arguments passed to the program: > > Run gdb (like this): gdb -i=mi ./bin/Debug/bilbao_read 1 2 > > > > Then I encounter the following rather messy information: > > You use a non-trivial tool for the first time, so you should at least > study its --help screen. That's not how you pass command-line > arguments to a program being debugged. You need to use --args: > > gdb -i=mi --args ./bin/Debug/bilbao_read 1 2 I have understood by and large the usage of GDB within Emacs, based on a brief introduction here [1]. BTW, the above introduction says the following: ``` Set a breakpoint by going to the source line of the program you're debugging, and typing: C-x [space] (That's the space bar.) GDB will tell you that you've just set a breakpoint. ``` But I noticed the following key binding by running `C-h k C-x [space] RET` on my machine: ``` rectangle-mark-mode is an autoloaded, interactive and compiled function defined in rect.el.gz. Signature (rectangle-mark-mode &optional ARG) Documentation Toggle the region as rectangular. This is a minor mode. If called interactively, toggle the Rectangle-Mark mode mode. If the prefix argument is positive, enable the mode, and if it is zero or negative, disable the mode. If called from Lisp, toggle the mode if ARG is toggle. Enable the mode if ARG is nil, omitted, or is a positive number. Disable the mode if ARG is a negative number. To check whether the minor mode is enabled in the current buffer, evaluate rectangle-mark-mode. The mode's hook is called both when the mode is enabled and when it is disabled. Activates the region if needed. Only lasts until the region is deactivated. View in manual Key Bindings ctl-x-map SPC global-map C-x SPC ``` [1] https://courses.cs.washington.edu/courses/cse378/97au/help/gdb-emacs.html Regards, Hongyi ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Debug Fortran 90 code in Emacs with arguments. 2022-04-06 2:26 ` Hongyi Zhao @ 2022-04-06 10:50 ` Eli Zaretskii 2022-04-06 13:05 ` Hongyi Zhao 0 siblings, 1 reply; 21+ messages in thread From: Eli Zaretskii @ 2022-04-06 10:50 UTC (permalink / raw) To: help-gnu-emacs > From: Hongyi Zhao <hongyi.zhao@gmail.com> > Date: Wed, 6 Apr 2022 10:26:11 +0800 > Cc: help-gnu-emacs <help-gnu-emacs@gnu.org> > > BTW, the above introduction says the following: > > ``` > Set a breakpoint by going to the source line of the program you're > debugging, and typing: > > C-x [space] > > (That's the space bar.) GDB will tell you that you've just set a breakpoint. That description is outdated, please report a bug to the GDB developers. ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Debug Fortran 90 code in Emacs with arguments. 2022-04-06 10:50 ` Eli Zaretskii @ 2022-04-06 13:05 ` Hongyi Zhao 2022-04-06 14:12 ` Eli Zaretskii 0 siblings, 1 reply; 21+ messages in thread From: Hongyi Zhao @ 2022-04-06 13:05 UTC (permalink / raw) To: Eli Zaretskii; +Cc: help-gnu-emacs On Wed, Apr 6, 2022 at 6:51 PM Eli Zaretskii <eliz@gnu.org> wrote: > > > From: Hongyi Zhao <hongyi.zhao@gmail.com> > > Date: Wed, 6 Apr 2022 10:26:11 +0800 > > Cc: help-gnu-emacs <help-gnu-emacs@gnu.org> > > > > BTW, the above introduction says the following: > > > > ``` > > Set a breakpoint by going to the source line of the program you're > > debugging, and typing: > > > > C-x [space] > > > > (That's the space bar.) GDB will tell you that you've just set a breakpoint. > > That description is outdated, please report a bug to the GDB > developers. The above description is written before many years (fall 1997), and the author may not bet GDB developers. So, why do you give the above suggestion? [1] https://courses.cs.washington.edu/courses/cse378/97au/help/gdb-emacs.html Yours, Hongyi ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Debug Fortran 90 code in Emacs with arguments. 2022-04-06 13:05 ` Hongyi Zhao @ 2022-04-06 14:12 ` Eli Zaretskii 2022-04-06 14:42 ` Hongyi Zhao 0 siblings, 1 reply; 21+ messages in thread From: Eli Zaretskii @ 2022-04-06 14:12 UTC (permalink / raw) To: help-gnu-emacs > From: Hongyi Zhao <hongyi.zhao@gmail.com> > Date: Wed, 6 Apr 2022 21:05:24 +0800 > Cc: help-gnu-emacs <help-gnu-emacs@gnu.org> > > On Wed, Apr 6, 2022 at 6:51 PM Eli Zaretskii <eliz@gnu.org> wrote: > > > > > Set a breakpoint by going to the source line of the program you're > > > debugging, and typing: > > > > > > C-x [space] > > > > > > (That's the space bar.) GDB will tell you that you've just set a breakpoint. > > > > That description is outdated, please report a bug to the GDB > > developers. > > The above description is written before many years (fall 1997), and > the author may not bet GDB developers. So, why do you give the above > suggestion? Because most of it is still valid for first-time GDB users, and the GDB manual is not supposed to be the canonical source of information about Emacs, anyway. ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Debug Fortran 90 code in Emacs with arguments. 2022-04-06 14:12 ` Eli Zaretskii @ 2022-04-06 14:42 ` Hongyi Zhao 2022-04-06 15:42 ` Eli Zaretskii 0 siblings, 1 reply; 21+ messages in thread From: Hongyi Zhao @ 2022-04-06 14:42 UTC (permalink / raw) To: Eli Zaretskii; +Cc: help-gnu-emacs On Wed, Apr 6, 2022 at 10:12 PM Eli Zaretskii <eliz@gnu.org> wrote: > > > From: Hongyi Zhao <hongyi.zhao@gmail.com> > > Date: Wed, 6 Apr 2022 21:05:24 +0800 > > Cc: help-gnu-emacs <help-gnu-emacs@gnu.org> > > > > On Wed, Apr 6, 2022 at 6:51 PM Eli Zaretskii <eliz@gnu.org> wrote: > > > > > > > Set a breakpoint by going to the source line of the program you're > > > > debugging, and typing: > > > > > > > > C-x [space] > > > > > > > > (That's the space bar.) GDB will tell you that you've just set a breakpoint. > > > > > > That description is outdated, please report a bug to the GDB > > > developers. > > > > The above description is written before many years (fall 1997), and > > the author may not bet GDB developers. So, why do you give the above > > suggestion? > > Because most of it is still valid for first-time GDB users, and the > GDB manual is not supposed to be the canonical source of information > about Emacs, anyway. 1. If GDB manual is not supposed to be the canonical source of information about using GDB in Emacs, what should be? 2. According to your suggestion, what bug(s) should I report to GDB developers? Regards, HZ ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Debug Fortran 90 code in Emacs with arguments. 2022-04-06 14:42 ` Hongyi Zhao @ 2022-04-06 15:42 ` Eli Zaretskii 2022-04-07 2:02 ` Hongyi Zhao 0 siblings, 1 reply; 21+ messages in thread From: Eli Zaretskii @ 2022-04-06 15:42 UTC (permalink / raw) To: help-gnu-emacs > From: Hongyi Zhao <hongyi.zhao@gmail.com> > Date: Wed, 6 Apr 2022 22:42:02 +0800 > Cc: help-gnu-emacs <help-gnu-emacs@gnu.org> > > > > The above description is written before many years (fall 1997), and > > > the author may not bet GDB developers. So, why do you give the above > > > suggestion? > > > > Because most of it is still valid for first-time GDB users, and the > > GDB manual is not supposed to be the canonical source of information > > about Emacs, anyway. > > 1. If GDB manual is not supposed to be the canonical source of information > about using GDB in Emacs, what should be? The section in the Emacs manual to which I pointed earlier in this thread. And also the built-in documentation (doc strings) of the related variables and commands. See M-x customize-group RET gdb RET > 2. According to your suggestion, what bug(s) should I report to GDB developers? That the Emacs keybindings they describe are outdated. ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Debug Fortran 90 code in Emacs with arguments. 2022-04-06 15:42 ` Eli Zaretskii @ 2022-04-07 2:02 ` Hongyi Zhao 0 siblings, 0 replies; 21+ messages in thread From: Hongyi Zhao @ 2022-04-07 2:02 UTC (permalink / raw) To: Eli Zaretskii; +Cc: help-gnu-emacs On Wed, Apr 6, 2022 at 11:43 PM Eli Zaretskii <eliz@gnu.org> wrote: > > > From: Hongyi Zhao <hongyi.zhao@gmail.com> > > Date: Wed, 6 Apr 2022 22:42:02 +0800 > > Cc: help-gnu-emacs <help-gnu-emacs@gnu.org> > > > > > > The above description is written before many years (fall 1997), and > > > > the author may not bet GDB developers. So, why do you give the above > > > > suggestion? > > > > > > Because most of it is still valid for first-time GDB users, and the > > > GDB manual is not supposed to be the canonical source of information > > > about Emacs, anyway. > > > > 1. If GDB manual is not supposed to be the canonical source of information > > about using GDB in Emacs, what should be? > > The section in the Emacs manual to which I pointed earlier in this > thread. And also the built-in documentation (doc strings) of the > related variables and commands. See > > M-x customize-group RET gdb RET Thank you for pointing this out. > > 2. According to your suggestion, what bug(s) should I report to GDB developers? > > That the Emacs keybindings they describe are outdated. Done. See the following information: from:Hongyi Zhao <hongyi.zhao@gmail.com> to:gdb@sourceware.org date:Apr 7, 2022, 9:59 AM subject:The Emacs keybindings of "C-x [space]" described in a maybe still widely referred tutorial are outdated. Regards, HZ ^ permalink raw reply [flat|nested] 21+ messages in thread
end of thread, other threads:[~2022-04-07 2:02 UTC | newest] Thread overview: 21+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2022-04-05 2:27 Debug Fortran 90 code in Emacs with arguments Hongyi Zhao 2022-04-05 11:18 ` Eli Zaretskii 2022-04-05 12:57 ` Hongyi Zhao 2022-04-05 13:00 ` Hongyi Zhao 2022-04-05 13:19 ` Eli Zaretskii 2022-04-05 13:23 ` Eli Zaretskii 2022-04-05 13:52 ` Hongyi Zhao 2022-04-05 14:02 ` Eli Zaretskii 2022-04-05 14:14 ` Hongyi Zhao 2022-04-05 14:19 ` Hongyi Zhao 2022-04-05 15:52 ` Eli Zaretskii 2022-04-06 1:46 ` Hongyi Zhao 2022-04-06 2:32 ` Eli Zaretskii 2022-04-06 3:02 ` Hongyi Zhao 2022-04-06 2:26 ` Hongyi Zhao 2022-04-06 10:50 ` Eli Zaretskii 2022-04-06 13:05 ` Hongyi Zhao 2022-04-06 14:12 ` Eli Zaretskii 2022-04-06 14:42 ` Hongyi Zhao 2022-04-06 15:42 ` Eli Zaretskii 2022-04-07 2:02 ` Hongyi Zhao
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).