主题:[原创]CVF中Debug模式的使用
mltx
[专家分:20880] 发布于 2005-11-06 11:37:00
CVF中有两种编译(连接、执行)模式:release模式和debug模式。
调试程序时,宜用debug模式;调好后再用release模式,得到高效的执行程序。
设定debug模式:
点击菜单Build/Set Active Project Configuration,选 *- Win32 Debug,OK,即设定为debug模式。
以debug模式执行:
点击“Go (F5)”按钮,或直接按F5键,则执行程序,并在第一个出错语句处停止,在该语句前有一个小黄色箭头。
若程序没错,则一直执行完毕,自动关闭dos窗口。此时,宜用“!”按钮或“Ctrl+F5”键,执行完成后,dos窗口等待用户关闭。
设置断点:
若希望执行时在某一语句处暂停,可将光标置于该语句,点击“手”形状的按钮,或按F9键,则程序执行到该语句时停在该语句处。
单步执行:
F10(不进入子过程程序段)或者F11(遇到子过程进入子过程程序段继续单步执行)。在工具栏上都有相应的按钮。
查看变量值:
小黄箭头停在某语句时,按下Variable按钮,显示当前程序段的变量值;
对于简单变量,将光标放在该变量上,则即时显示该变量值。
先简单说这么多。
[color=FF0000]2005.11.06:如何用Debug模式获得更多的提示信息[/color]
依次选择/打开:Project => Settings => Fortran => Compilation Diagnostics
建议选中以下各项:
Argument Mismatch (类型不一致)
Data Alignment (数据排列错位)
Uncalled Routines (从无调用的子过程)
Undeclared Symbols (未声明变量、过程等)
Uninitialized Variables (未赋初始值的变量)
Unused Variables (从未用到的变量)
Usage (用法)
用了这些选项,可以对很多潜在的问题给予警告,使代码更为规范安全。
注意:Uninitialized Variables只对简单变量有效,对数组无效。如果简单变量a未给初值,而用于 b=3.0*a,则编译时将报错,但是如果a是个数组变量,则不报错。(不知后来的Intel VF版本有没有改进?)
另外也建议以下设置:
Fortran Standard Checking: Fortran 90/95
这样,非标准的、厂家扩充的语法功能就会给出警告。
回复列表 (共57个回复)
沙发
yuenqing [专家分:60] 发布于 2005-03-17 13:16:00
能不能详细谈谈
0041D329 bound esi,qword ptr [ebp-218h]
0041D32F imul ebx,dword ptr [SKL+0A0h (0d2359a8)]
.
.
.这些的意思,我看不明白
板凳
mltx [专家分:20880] 发布于 2005-03-17 14:02:00
这是机器码(汇编码),有一个按钮disassembly,可以显示fortran源代码。
3 楼
yuenqing [专家分:60] 发布于 2005-03-17 16:26:00
这个我看到了,绿色三角是什么?
黄色箭头处怎么解决呢?怎么查原因??
4 楼
yuenqing [专家分:60] 发布于 2005-03-17 16:33:00
SKZ(1,1)=SKU
SKZ(2,1)=SKUF(1)
SKZ(3,1)=SKUF(2)
SKZ(4,1)=SKUF(3)
SKZ(2,2)=SKF(1,1)
第一句前面有黄色箭头,帮我想一下怎么回事
5 楼
mltx [专家分:20880] 发布于 2005-03-17 21:15:00
不知道你是按了什么键使黄箭头出现在第一句的?
当第一句有黄箭头时,表示即将执行该句语句,此时可作如下:
将光标停留在变量SKU上,即可出现一个提示标签,显示该变量的值。
按下variables按钮,即可看见本程序段中的变量值。
按F10或F11键,即可执行这一句,黄箭头移到下一句。
6 楼
yuenqing [专家分:60] 发布于 2005-03-17 21:21:00
sku的值显示是0,这是什么原因呢,调入子程序时不应该是0阿??
7 楼
yuenqing [专家分:60] 发布于 2005-03-17 21:28:00
它没有往下面执行,还是在这个位置,而且这个子程序里面的变量显示0值?
8 楼
mltx [专家分:20880] 发布于 2005-03-17 21:55:00
sku的值显示是0,这是什么原因呢,调入子程序时不应该是0阿??
这就该是你去考虑的问题了。debug就是把问题暴露出来,至于如何去除这些bug,还得靠用户。
如我首贴所写,你可以在这句之前设置断点,追踪变量的值。
9 楼
yuenqing [专家分:60] 发布于 2005-03-18 09:59:00
红色的是什么数字是什么意思
10 楼
Ilovepic [专家分:50] 发布于 2005-03-18 10:42:00
绿色三角是什么啊?
[em2]
我来回复