微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Visual Studio Code 中 GDB 调试器的问题

如何解决Visual Studio Code 中 GDB 调试器的问题

我正在使用 Visual Studio Code 调试 Mac OSX 11.4 中的 Fortran 代码,使用 GDB C++ 调试器和 Visual Studio Code 中的 Fortran 断点支持。在 launch.json 中,我有以下代码

{
    "version": "0.2.0","configurations": [
        {
            "name": "Run GDB","type": "cppdbg","request": "launch","program": "${workspaceRoot}/a.out","args": [],"stopAtEntry": false,"cwd": "${workspaceRoot}","externalConsole": false,"MIMode": "gdb","prelaunchTask": "make"
        },]
}

tasks.json 中,我有以下代码

{
    "version": "2.0.0","tasks": [
        {
            "label": "make","type": "shell","command": "make","options": {
                "cwd": "${workspaceRoot}"
            }
        }
  
    ]
}

在我的 Makefile 中,我有

# variables
FC=gfortran
SRC=Parameters.f90 Globals.f90 Procedures.f90 random.f90 SimulateEarnings.f90 Grids.f90 ValueFunctions.f90 Simulations.f90 RunSimulations.f90
OBJ=${SRC:.f90=.o}

# convert all .f90 files into .o files
%.o: %.f90
    $(FC) -c -g $<

# create executable
a.out: ${OBJ}
    $(FC) ${OBJ}

# clean
clean:
    rm *.o a.out

# execute
run:
    make
    ./a.out

我可以在终端中毫无问题地运行 makemake run。在 Visual Studio Code 中,我然后使用 F9 在代码中的某个位置放置一个断点,然后按 F5 开始调试。这样做时,会出现三个问题:

  1. 代码并不总是在我的断点处停止,我让它最终停止的唯一方法是反复重新启动调试,直到它最终停止。
  2. 一旦它最终停止,所有变量的值都不会显示。我能找到它们的唯一方法是手动将变量添加到“WATCH”。
  3. “WATCH”中某些变量的值不正确。如果我在将变量打印到控制台的代码行上设置断点,则打印到控制台的值与“WATCH”中显示的值不匹配。

在此先感谢您的帮助,对这么长的问题深表歉意!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。