chencheng
驱动小牛
驱动小牛
  • 注册日期2003-06-27
  • 最后登录2007-08-30
  • 粉丝0
  • 关注0
  • 积分28分
  • 威望5点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
阅读:1025回复:10

请问为什么我不能用softice设断点??

楼主#
更多 发布于:2004-09-06 17:43
我在DpcFor_Irq()中有这么一段:
for(k=0;k<4;k++)
{
m_IoPortRange1.outb(0x00,Temp_Data.svalue[3-k]);//可以在这里设置断点
for(int l=0;l<1200000000;l++)//for delay。不可以在这里设置断点
{
j=j+1;
}
m_IoPortRange1.outb(0x02,CPort[k]);//可以在这里设置断点
for(int m=0;m<1200000000;m++)//for delay。不可以在这里设置断点

{
j=j+1;
}
m_IoPortRange1.outb(0x02,0x0d8);//可以在这里设置断点
for(int n=0;n<1200000000;n++)//for delay。不可以在这里设置断点

{
j=j+1;
}

}
为什么不能在循环嵌套里设断点?? :(
好好学习,天天向上
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
沙发#
发布于:2004-09-06 17:50
不可能,你用F3切换到C/ASM混合代码处,在相应的汇编指令处下断点。。。。。
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
wbinw
驱动牛犊
驱动牛犊
  • 注册日期2004-07-04
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-09-06 18:10
我也出现了这种情况,那几行总是设不了断点
chencheng
驱动小牛
驱动小牛
  • 注册日期2003-06-27
  • 最后登录2007-08-30
  • 粉丝0
  • 关注0
  • 积分28分
  • 威望5点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-09-07 08:46
我在DpcFor_Irq()中有这么一段:
for(k=0;k<4;k++)
{
m_IoPortRange1.outb(0x00,Temp_Data.svalue[3-k]);//可以在这里设置断点
for(int l=0;l<1200000000;l++)//for delay。不可以在这里设置断点
{
j=j+1;
}
m_IoPortRange1.outb(0x02,CPort[k]);//可以在这里设置断点
for(int m=0;m<1200000000;m++)//for delay。不可以在这里设置断点

{
j=j+1;
}
m_IoPortRange1.outb(0x02,0x0d8);//可以在这里设置断点
for(int n=0;n<1200000000;n++)//for delay。不可以在这里设置断点

{
j=j+1;
}

}
为什么不能在循环嵌套里设断点?? :(



还有一个问题,我想在DpcFor_Isr()函数里面用延迟函数,但是刚刚我看到KeDelayExecutionThread()函数的中断级别必须是<Dispatch_Level的,而DpcFor_Isr()的级别刚好是Dispatch_Level
那我应当用哪个延迟函数呢?应该怎么用?请大虾指教。谢谢
好好学习,天天向上
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
地下室#
发布于:2004-09-07 09:35
可能是setenv.bat的设置问题,给优化掉了

:checked

rem set up an NT checked build environment

set BUILD_ALT_DIR=chk
set NTDBGFILES=
set NTDEBUG=ntsd
set NTDEBUGTYPE=both
set MSC_OPTIMIZATION=/Od /Oi检查这里
chencheng
驱动小牛
驱动小牛
  • 注册日期2003-06-27
  • 最后登录2007-08-30
  • 粉丝0
  • 关注0
  • 积分28分
  • 威望5点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-09-07 10:13
可能是setenv.bat的设置问题,给优化掉了

:checked

rem set up an NT checked build environment

set BUILD_ALT_DIR=chk
set NTDBGFILES=
set NTDEBUG=ntsd
set NTDEBUGTYPE=both
set MSC_OPTIMIZATION=/Od /Oi检查这里
 

大虾您好,就是您说的这么回事!!!!!
原来我的setenv.bat里面的set MSC_OPTIMIZATION=,后面什么也没有,我加入了 /Od /Oi就好用了!!可以加断点了。
对了,以前没有/Od /Oi的时候,那个嵌套在
for(int i=0;i<4;i++)循环里面的for循环(延迟作用)根本就没有起作用,好像是根本就没有运行就跳过去了,现在一切正常,谢谢

结论:如果set MSC_OPTIMIZATION=,后面什么参数也没有,那么驱动程序的for循环里面的for循环不起作用!!


[编辑 -  9/7/04 by  chencheng]
好好学习,天天向上
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
6楼#
发布于:2004-09-07 10:31
结论不对,不是没有作用,而是在你这种情况下,编译器优化掉了
wbinw
驱动牛犊
驱动牛犊
  • 注册日期2004-07-04
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-09-07 11:40
谢谢各位大侠的指导,让我受益匪浅
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
8楼#
发布于:2004-09-07 12:04
受益匪浅
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
9楼#
发布于:2004-09-07 12:07
不过只有在FREE版本才优化的。CHECKED的好象都保留该项目设置的。。。。。
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
10楼#
发布于:2004-09-07 12:53
有的2K DDK的setenv.bat文件的checked的设置确实不对,不知何故
游客

返回顶部