问题描述
我正在使用 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"
},]
}
{
"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
我可以在终端中毫无问题地运行 make
和 make run
。在 Visual Studio Code 中,我然后使用 F9 在代码中的某个位置放置一个断点,然后按 F5 开始调试。这样做时,会出现三个问题:
- 代码并不总是在我的断点处停止,我让它最终停止的唯一方法是反复重新启动调试,直到它最终停止。
- 一旦它最终停止,所有变量的值都不会显示。我能找到它们的唯一方法是手动将变量添加到“WATCH”。
- “WATCH”中某些变量的值不正确。如果我在将变量打印到控制台的代码行上设置断点,则打印到控制台的值与“WATCH”中显示的值不匹配。
在此先感谢您的帮助,对这么长的问题深表歉意!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)