| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3463 人关注过本帖
标题:问个debug调试的问题(问题部分解决 万分感谢高人ONEPROBLEM)
只看楼主 加入收藏
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
结帖率:100%
收藏
 问题点数:0 回复次数:14 
问个debug调试的问题(问题部分解决 万分感谢高人ONEPROBLEM)
用debug调试时  遇到 int 3h 的断点后 如何使程序继续运行?


D:\MASMPlus\Project\100add>debug dos.exe
-g

AX=FFFF  BX=0031  CX=0000  DX=0042  SP=0200  BP=0000  SI=002E  DI=0000
DS=13CD  ES=13B9  SS=13D6  CS=13C9  IP=002D   NV UP EI PL NZ NA PE NC
13C9:002D CC            INT     3
-t

AX=FFFF  BX=0031  CX=0000  DX=0042  SP=01FA  BP=0000  SI=002E  DI=0000
DS=13CD  ES=13B9  SS=13D6  CS=0DD7  IP=13B1   NV UP DI PL NZ NA PE NC
0DD7:13B1 55            PUSH    BP
-t

AX=FFFF  BX=0031  CX=0000  DX=0042  SP=01F8  BP=0000  SI=002E  DI=0000
DS=13CD  ES=13B9  SS=13D6  CS=0DD7  IP=13B2   NV UP DI PL NZ NA PE NC
0DD7:13B2 8BEC          MOV     BP,SP
-p

AX=FFFF  BX=0031  CX=0000  DX=0042  SP=01F8  BP=01F8  SI=002E  DI=0000
DS=13CD  ES=13B9  SS=13D6  CS=0DD7  IP=13B4   NV UP DI PL NZ NA PE NC
0DD7:13B4 FF8E0200      DEC     WORD PTR [BP+0002]                 SS:01FA=002E
-p

AX=FFFF  BX=0031  CX=0000  DX=0042  SP=01F8  BP=01F8  SI=002E  DI=0000
DS=13CD  ES=13B9  SS=13D6  CS=0DD7  IP=13B8   NV UP DI PL NZ NA PE NC
0DD7:13B8 5D            POP     BP
-p

AX=FFFF  BX=0031  CX=0000  DX=0042  SP=01FA  BP=0000  SI=002E  DI=0000
DS=13CD  ES=13B9  SS=13D6  CS=0DD7  IP=13B9   NV UP DI PL NZ NA PE NC
0DD7:13B9 EB21          JMP     13DC
-


偶是菜鸟 要怎样才能让程序继续运行?  先谢谢了

[[it] 本帖最后由 zklhp 于 2008-7-28 02:15 编辑 [/it]]
搜索更多相关主题的帖子: debug 调试 FFFF INT PUSH 
2008-07-05 21:43
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
高手一句话就说明了 是不是要清什么标志位?

指点下
2008-07-07 19:59
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
顶到出答案为止
2008-07-12 16:43
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
再顶  高人说下
2008-07-20 01:39
yuanlongs
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2008-4-4
收藏
得分:0 
我帮你顶
2008-07-20 12:53
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
[bo][un]zklhp[/un] 在 2008-7-5 21:43 的发言:[/bo]

用debug调试时  遇到 int 3h 的断点后 如何使程序继续运行?

我说各位高手 是无法实现 无此功能    还是问题太弱 不屑于回答    还是大家都不知道呀 给个说法 偶在网上找了半天啥也没找到

D:\MASMPlus\Projec ...



是不是要清什么标志位?
2008-07-22 16:39
你们都要疼我哦
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:火星
等 级:贵宾
威 望:49
帖 子:1296
专家分:2746
注 册:2008-7-13
收藏
得分:0 
DOS下的不懂. 写成32位的,用OD调试多好.
2008-07-25 14:01
ONEPROBLEM
Rank: 6Rank: 6
来 自:广西 南宁
等 级:贵宾
威 望:21
帖 子:1569
专家分:349
注 册:2008-7-11
收藏
得分:0 
3号中断是“断点中断”啊,在使用DEBUG的时候,遇到这里当然会引发中断的(而且引发的就是断点中断处理程序)。
否则,只有修改中断向量表了。
不知道我说的对不对?

[[it] 本帖最后由 ONEPROBLEM 于 2008-7-25 17:39 编辑 [/it]]
2008-07-25 17:37
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
[bo][un]ONEPROBLEM[/un] 在 2008-7-25 17:37 的发言:[/bo]

3号中断是“断点中断”啊,在使用DEBUG的时候,遇到这里当然会引发中断的(而且引发的就是断点中断处理程序)。
否则,只有修改中断向量表了。
不知道我说的对不对?


讲的太好了 谢谢了 论坛里真是热心人多

偶问的是 怎么让程序继续运行  就像在 win32 里那样  好象执行了 int 3h 后 那个单步的标志位会被设置上  怎么让它继续运行

好象直接用  g p t 都不行 怎么办

谢谢了
2008-07-27 15:16
ONEPROBLEM
Rank: 6Rank: 6
来 自:广西 南宁
等 级:贵宾
威 望:21
帖 子:1569
专家分:349
注 册:2008-7-11
收藏
得分:0 
哥们,你的问题是不是太复杂了?
遇到int 3h,必然要处理断点中断的。而断点,就是程序停下来的地方,为什么要停下来?是为了等待我们去处理(这个断点),我们去处理了,程序才会继续运行。
什么单步标志位?是不是要说TF 呢?在进入任何中断前,TF都要置0 。原因:1、避免单步中断的“恶性循环”(个人说法);2、禁止其它的可屏蔽中断(指外中断的)。
在遇到int 3h 的时候,不管TF是0,或是1,CPU都要把TF置0,然后强制跳转,因为3号中断是内中断,是CPU必须响应的。
所以,我的观点是:除非你能修改中断向量表(这在DOS下是允许的),让3号中断这个地方指向你的程序要继续运行的地方。

这是我的理解,可能不对。请楼主参考一下罢了。
2008-07-27 23:17
快速回复:问个debug调试的问题(问题部分解决 万分感谢高人ONEPROBLEM)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019003 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved