mikeluo
驱动老牛
驱动老牛
  • 注册日期2001-09-04
  • 最后登录2007-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1240回复:5

softice下断点的问题

楼主#
更多 发布于:2002-12-04 17:31
我想监视一块内存,用bpmd,看他是在什么时候被修改的,现在的问题是这快内存还会被其他的很多程序用到,所以会不停的被中断,我想在我的程序中他被修改时才中断,用了一个bpmd xxxxxxxx w if(EBP==xxxxxxxx),这里面两个xxxxxxxx是一样的,因为堆栈被破坏了,但是下个断点然后F5不会有问题,如果没有断点的时候才会死掉,各位有什么建议?
学而不思则罔,思而不学则殆 学而思之,思而学之,岂非圣人乎?
mikeluo
驱动老牛
驱动老牛
  • 注册日期2001-09-04
  • 最后登录2007-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-12-05 09:13
大家有什么建议??
学而不思则罔,思而不学则殆 学而思之,思而学之,岂非圣人乎?
bingjie
驱动小牛
驱动小牛
  • 注册日期2001-08-15
  • 最后登录2007-11-29
  • 粉丝0
  • 关注0
  • 积分36分
  • 威望5点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-12-05 09:18
不知道你要解决什么问题,似乎是想找出破坏内存的那个函数调用,建议你对有可能修改该内存的函数都输出调试信息,然后使用双机联调试试
mikeluo
驱动老牛
驱动老牛
  • 注册日期2001-09-04
  • 最后登录2007-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-12-05 09:21
目的就是这个。不过我是在98下的vxd,我知道是在那个函数里面,但是不确定是在那个语句,而且如果我下个断点就不会出问题了,
学而不思则罔,思而不学则殆 学而思之,思而学之,岂非圣人乎?
bingjie
驱动小牛
驱动小牛
  • 注册日期2001-08-15
  • 最后登录2007-11-29
  • 粉丝0
  • 关注0
  • 积分36分
  • 威望5点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-12-05 16:18
如果这样也好办,你可以把该函数里的代码分段,每段前加调试信息,然后再判断。还有我很奇怪你所说的加了断点就不会有问题,这有两个可能,一个可能你是不是在单步执行,这样多线程冲突就不会存在,另一个可能是softice对页错进行了监控,这样系统可能不会报错,但你的数据应该会有问题。
mikeluo
驱动老牛
驱动老牛
  • 注册日期2001-09-04
  • 最后登录2007-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-12-05 16:41
这个问题我也很奇怪,不用单步,只要每次F5就行了,而且一切都正常,是在什么地方内存越界了,将调用函数的栈该了,在返回时的pop ebp以后不就完蛋了么:(
学而不思则罔,思而不学则殆 学而思之,思而学之,岂非圣人乎?
游客

返回顶部