Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Could not run debugger for fortran. Visual Studio Code

I am trying to debug a fortran file on Visual Studio code(ubuntu 18.04).

I have the following installed extensions

enter image description here

My launch.json file is the following

"version": "0.0.1",
"configurations": [
    {
        "name": "Fortran Launch (GDB)",
        "type": "cppdbg",
        "request": "launch",
        "targetArchitecture": "x86",
        "program": "${workspaceRoot}/./a.out",
        "miDebuggerPath": "gdb",
        "args": [],
        "stopAtEntry": false,
        "cwd": "${workspaceRoot}",
        "externalConsole": true,
        "preLaunchTask": "gfortran"
    }
]

since I am using linux, i dont need to give the path for gfortran. Also I tried changing the launch.json a little by changing .exe to linux extensions. I have updated it in the question. However the debugger still doesn't run and gives the following error in the console

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".
=cmd-param-changed,param="pagination",value="off"
Stopped due to shared library event (no libraries added or removed)
Loaded '/lib64/ld-linux-x86-64.so.2'. Symbols loaded.
Breakpoint 1, 0x0000555555554a60 in main ()
[Inferior 1 (process 24472) exited normally]
The program '/home/m/gSoC/GasSimulator/./a.out' has exited with code 0 (0x00000000).
like image 572
fireball.1 Avatar asked Aug 15 '18 20:08

fireball.1


2 Answers

I don't know how to fix your specific problem, but here how I debugged a Fortran program in Visual Studio Code.

  1. I installed 3 plugins: "C/C++", "fortran" from Xavier Hahn and "Fortran Breakpoint Support"
  2. I compiled my program following the advices from fortranwiki.org.
gfortran SOME FORTRAN FILES -g -Wall -Wextra -Warray-temporaries -Wconversion -fimplicit-none -fbacktrace -ffree-line-length-0 -fcheck=all -ffpe-trap=zero,overflow,underflow -finit-real=nan
  1. I generated a launch.json file and only changed my program path and args, nothing else. Which gives something like
    {
        "version": "0.2.0",
        "configurations": [
            {
                "name": "(gdb) Lancer",
                "type": "cppdbg",
                "request": "launch",
                "program": "${workspaceFolder}/a.out",    // <-- Change this
                "args": [],                               // <-- Change this
                "stopAtEntry": false,
                "cwd": "${workspaceFolder}",              // <-- And maybe this
                "environment": [],
                "externalConsole": false,
                "MIMode": "gdb",
            }
        ]
    }

Maybe it was impossible or super hard to do in 2018, who knows? There have been a lot of update in VSCode and its plugins since then.

like image 70
Nil Avatar answered Oct 08 '22 03:10

Nil


For future reference, I had the same problem and it got fixed by passing the -g option to the compiler

like image 26
Konpas Avatar answered Oct 08 '22 01:10

Konpas