因为学习需要对PRIDE PPP AR一步一步调试,但是无奈对于Fortran Makefile代码调试不太擅长,并且程序整体设计流程是通过shell脚本调用不同模块( lib spp orbit tedit lsq redig arsig utils)实现,对于调试不太友好。
本着“不更改整体软件设计结构”,搞出了一个很笨的方法,但是可用,凑活用吧!!!
如果有大佬有简便方法,希望可以分享一下!!!
一、虚拟环境
推荐windows使用WSL,自行百度安装,使用VScode WSL扩展。
使用扩展连接
二、打开PRIDE PPP AR
如下图:
三、安装PRIDE PPP AR
运行install.sh
新建终端 运行install.sh
需要注意 要修改makefile的优化等级 -O3修改为-O0 ,因为每个模块都有makefile,最好是全部修改
四、创建launch.json
调整我添加注释的位置
{ // Use IntelliSense to learn about possible attributes. // Hover to view descriptions of existing attributes. // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "name": "(gdb) Launch", "type": "cppdbg", "request": "launch", "program": "/home/zqc/.PRIDE_PPPAR_BIN/tedit",//使用 which tedit 命令,粘贴目录 "args": [这里添加install.sh 打印的命令行命令 "/home/zqc/tedit_test/example/data/2020/001/abmf0010.20o", "-time", "2020", "01", "01", "00", "00", "0.00", "-len", "86370.00", "-int", "30", "-xyz", "2919786.3432", "-5383746.0680", "1774605.0510", "-short", "1200", "-lc_check", "only", "-rhd", "log_2020001_abmf", "-pc_check","300", "-elev","7", "-rnxn", "/home/zqc/tedit_test/example/data/2020/001/brdm0010.20p", "-freq", "G12", "R12", "E15", "C26", "J12", "-trunc_dbd", "y","-tighter_thre", "no" ], "stopAtEntry": false, "cwd": "/home/zqc/debug_test/PRIDE-PPPAR-master/example/2020/001",//转到数据目录 "environment": [], "externalConsole": false, "MIMode": "gdb", "setupCommands": [ { "description": "Enable pretty-printing for gdb", "text": "-enable-pretty-printing", "ignoreFailures": true }, { "description": "Set Disassembly Flavor to Intel", "text": "-gdb-set disassembly-flavor intel", "ignoreFailures": true } ], //"preLaunchTask": "run", "miDebuggerPath": "/usr/bin/gdb", // 根据系统上的 GDB 路径调整 } ] }
NOTE 需要传入参数,有空格就要" ",
五、打断点
到这里会发现,源代码无法打断点
这里我发现了折中办法
点击+,添加你需要调试的函数,就打上断点了
按F5就好了
成果