首页
社区
课程
招聘
[讨论]哪些情况下对API下的断点不会被触发?
发表于: 2005-5-16 10:03 4584

[讨论]哪些情况下对API下的断点不会被触发?

2005-5-16 10:03
4584
在Soft-ice的帮助文档里面找到如下字句:
一个断点的上下文包括下这个断点的地址空间(领空)和这个断点所在的代码模块。
对Win32程序来说,设在2G以上的地址的断点是全局的,在任何情况都会被触发。在
低于2G地址里的断点是和领空有关联的。
     1。只有在下断点的同一领空里,Soft-ice才会被触发。
     2。如果在同一代码模块里,Soft-ice会忽略领空。这就意味着在User32.dll
这种共享模块里的断点在每一个程序领空都会被触发。除非另外的程序把这个共享模块加载到内存的不同地方。(Using Soft-ice.pdf 127页)
    我想大家对API下断点的时候,不会考虑领空问题吧?任何时候按下Ctrl+D,直接bpx GetDlgItemTextA,然后运行程序,输入密码,点击注册,就会触发断点了。
    不过我在调试一个程序的时候,出现了问题:
    在等待输入密码的时候,我按下Ctrl+D,来到Soft-ice,发现在CSRSS里,我下断点:   bpx GetDlgItemTextA.然后回到程序里,点击注册,可是它不被触发!再回到Soft-ice,用addr来到程序的领空,u bp0(就是bpx GetDlgItemTextA这个断点),发现根本都没有断点的存在?!我用F9在这地方下断点,再回来点击注册,Soft-ice被触发了!请问这是为什么?对API的断点难道都要在程序领空里下吗?在哪些情况下API的断点不会被触发呢?
      请各位大虾指点啊!

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
我自己回到一下:)
我使用的是Soft-ice 4.3.0
OS是Win2k,NT 5.0 SP0(Soft-ice下用ver显示的)

对共享的dll里的输出函数下断点,只能下到csrss里,其他程序的领空里没有用

我卸载掉这个版本,换了4.2.7,就是在Drvier Studion2.7里带的那个,一切恢复正常了,不知道4.3.0是不是bug或者是我的某个设置不对?如果是bug,请问哪里有Patch呢?
谢谢
2005-5-16 14:41
0
雪    币: 58782
活跃值: (21961)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
3
4.3.0是如你所说的,4.2.7以前版本是全局断点。
2005-5-16 20:05
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
多谢老大:)
那在4.3.0里岂不是不能对全局API下断点?难道只能用addr配合来下断点?
2005-5-18 10:35
0
游客
登录 | 注册 方可回帖
返回