fortran第十四讲-gdb调试

fortran第十四讲-gdb调试

ID:22665935

大小:341.00 KB

页数:31页

时间:2018-10-21

fortran第十四讲-gdb调试_第1页
fortran第十四讲-gdb调试_第2页
fortran第十四讲-gdb调试_第3页
fortran第十四讲-gdb调试_第4页
fortran第十四讲-gdb调试_第5页
资源描述:

《fortran第十四讲-gdb调试》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Fortran程序设计第十四讲习题课与GDB调试复习第十三讲内容旧版本的Fortran特性格式:1-5列是行号第一列是C或者星号,表示本行为注释第六列如果不是空白或0,表示续行注释有效语句位置续行旧版本第一列用C或*从第7列到72列第6列非0为续行Fortran90!开始的行从第1-132列用&表示续行行号在1-5列每行程序的最前面DATA语句的使用变量初始化:DATAa,b,c/1.0,2*2.0/数组初始化:REALa(2,2)DATAa/1.,2.,3.,4./!按列优先旧的PARAMETER语句:INTEGERSIZEPARAMETER(SIZE=1000)COMMON

2、语句用BLOCKDATA初始化COMMON块中的数据BLOCKDATAinitialINTEGERvar1,var2COMMON/mydata/var1,var2DATAvar1,var2/1,2/ENDBLOCKDATA四条不必要的子程序特性另一子程序的返回点另一入口点语句函数将内置函数作为参数传递语句函数PAUSESTOPENDPAUSE语句用于暂停程序的执行已经在Fortran95中被删掉STOP语句用于终止程序的执行可以在STOP后面加参数,形式如下:STOPstop_value例如:STOP‘Normalcompletion’当终止时,会显示这个字符串END语句在Fo

3、rtran90之前,所有的程序单元都用END结束Fortran90以后,标准是用形如:ENDPROGRAMENDMODULE之类的语句当然,也可以单用END但是,内部过程和模块过程必须用ENDSUBROUTINE和ENDFUNCTION算术IF语句GOTO语句计算GOTO语句赋值GOTO语句旧的DO循环与CONTINUE多文件编译14.1迷宫的解法一设置辅助数组的解法:设置三个和maze数组一样结构的数组:Step_maze用于保存当前块在路径中的步数Leave_direction用于保存在路径中离开当前块的方向,0表示东面,1,2,3分别表示南西北From_direction

4、表示从哪个方向到达当前块过程列表:Createmaze(maze,n)创建一个随机的二维方阵maze(n,n),方阵的元素要么是0要么是1,1表示迷宫的通道,0表示迷宫的墙Init_random_seed()初始化随机数种子Solve(maze,n)在迷宫maze(n,n)中找到一条从maze(1,1)到maze(n,n)的路径,如果找不到,输出提示信息,找到就输出路径步骤get_new_position(n,i,j,direction)在数组direction中取得i,j的方向,并计算这个方向所对应的新的i,j值check_direction(maze,n,i,j,direc

5、tion,step_maze)检查迷宫的下一个方向能否走的通14.2迷宫的解法二在这个算法中,不设置辅助数组用自定义的数据结构来保存在每个块上面的步数、方向等信息TYPE::maze_elementINTEGER::roadINTEGER::leave_directionINTEGER::from_directionINTEGER::stepENDTYPEmaze_element14.3迷宫的递归解法见代码14.4Fortran程序的调试程序的调试程序没有语法错误,但是运行出错程序运行结果和预期不符程序运行结果的精度达不到要求调试的方法:在程序中增加调试语句,来输出一些中间结果

6、用调试软件图形化的调试软件命令行的调试软件14.5GDB的使用如果需要调试程序,编译的时候添加-g选项gfortran–gexample.f90–oexample生成的example.exe文件就是可执行文件此时,可以输入gdbexample进入调试程序14.6GDB使用概述GDB的命令可以输入help查看输入命令时,可以不用输入完整的命令,只需要前面几个字母,当然,这前面几个字母应该唯一区分了该命令输入一个或多个字母后,连按两次TAB键,可以列出所有以该字母打头的命令14.7在GDB中运行程序rrun可以在gdb中运行程序14.8暂停与恢复程序运行调试程序中,暂停程序运行是必

7、须的,GDB可以方便地暂停程序的运行。你可以设置程序的在哪行停住,在什么条件下停住,在收到什么信号时停往等等。以便于你查看运行时的变量,以及运行时的流程。当进程被gdb停住时,你可以使用infoprogram来查看程序的是否在运行,进程号,被暂停的原因。在gdb中,我们可以有以下几种暂停方式:断点(BreakPoint)、观察点(WatchPoint)、捕捉点(CatchPoint)、信号(Signals)、线程停止(ThreadStops)。如果要恢复程序运行,可以使用c或是continu

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。