免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: fxf_china
打印 上一主题 下一主题

strdbg中的两个技巧WATCH,BREAK [复制链接]

论坛徽章:
0
11 [报告]
发表于 2008-09-19 11:29 |只看该作者
原帖由 wdz315 于 2008-9-18 16:37 发表
试验了一下,好像没停。

0016.00      C           60        DO   89        I1      20      
0018.00      C                     ENDDO                           

break 001600 when id=65



行数写错了,应该是16,你这里有id这个变量吗?应该是I1吧

论坛徽章:
0
12 [报告]
发表于 2008-09-19 19:50 |只看该作者
不错,可以试一下,呵呵

论坛徽章:
0
13 [报告]
发表于 2008-09-24 15:46 |只看该作者
原帖由 fxf_china 于 2008-9-19 11:29 发表



行数写错了,应该是16,你这里有id这个变量吗?应该是I1吧


B 16 I1 = 61  
Statement 16 not found.
B 001600 I1 = 65  
无效,还是退出了。

论坛徽章:
0
14 [报告]
发表于 2008-09-25 08:30 |只看该作者
原帖由 wdz315 于 2008-9-24 15:46 发表


B 16 I1 = 61  
Statement 16 not found.
B 001600 I1 = 65  
无效,还是退出了。



BREAK + 行数 + WHEN + 特定条件
你的when到哪里去了

论坛徽章:
0
15 [报告]
发表于 2008-09-25 08:45 |只看该作者
原帖由 fxf_china 于 2008-9-25 08:30 发表



BREAK + 行数 + WHEN + 特定条件
你的when到哪里去了


              Display Breakpoints
                                             
  Program . . . . .     CHECKJOB            
                                             
      Line        Condition/skip parameters  
                                             
      001600      WHEN I1 *EQ 61            

然后F17 还是退出了。

论坛徽章:
0
16 [报告]
发表于 2008-09-25 09:20 |只看该作者
原帖由 wdz315 于 2008-9-18 16:37 发表
试验了一下,好像没停。

0016.00      C           60        DO   89        I1      20      
0018.00      C                     ENDDO                           

break 001600 when id=65



刚才试了一下,
16这一行只经过一次,就是进入这个循环时,然后就再没到过此行,你可以单步看一下
把行数改为18就可以了

论坛徽章:
0
17 [报告]
发表于 2008-09-25 09:25 |只看该作者
我顶下

说个我的小技巧

有些低层的代码处理的参数有时候是很大的 比如我们有的变量就是定义成上万的长度
有时候需要查询其中一段的值 F11查看就很费劲了 可以这样

DSP (X,Y)fldname

X是要开始查询的起始位置
Y是要查询的长度

这里注意一下 括号和fldname之间一定不能有空格

论坛徽章:
0
18 [报告]
发表于 2008-09-25 10:00 |只看该作者
楼上的DSP (X,Y)fldname是在STRISDB中的
不知道在STRDBG中是什么,eval好像不行

论坛徽章:
0
19 [报告]
发表于 2008-09-25 10:02 |只看该作者
埃,在STRDBG中可以用内置函数
EVAL %SUBSTR(fldname X Y)

论坛徽章:
0
20 [报告]
发表于 2008-09-25 13:10 |只看该作者
原帖由 fxf_china 于 2008-9-25 09:20 发表



刚才试了一下,
16这一行只经过一次,就是进入这个循环时,然后就再没到过此行,你可以单步看一下
把行数改为18就可以了


终于成功了,非常感谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP