首页
社区
课程
招聘
[求助]有个Debug API的问题请教
发表于: 2010-11-17 17:17 4905

[求助]有个Debug API的问题请教

2010-11-17 17:17
4905
为什么下面的DBEvent.u.Exception.ExceptionRecord.ExceptionAddress中的值
一直是NTdll中的地址(0X7C9*开头),而不会是程序中领空的地址(0X004*开头)?也就
是那个提示框一直没运行到.

此程序已经设置为单步调试,这问题弄了我好多天了,望各位不吝赐教,在线等...


case EXCEPTION_SINGLE_STEP:
{
				
        context.ContextFlags = CONTEXT_FULL | CONTEXT_DEBUG_REGISTERS;
        GetThreadContext(pi.hThread,&context);
        if (DBEvent.u.Exception.ExceptionRecord.ExceptionAddress  ==(void *) 0x0434c38)      
        {
	MessageBox (0, "OK", "test", MB_OK);
        }
        context.EFlags |= 0x100;
        SetThreadContext(pi.hThread,&context);
        ContinueDebugEvent(DBEvent.dwProcessId,DBEvent.dwThreadId,DBG_CONTINUE);
        continue;
}
               

[注意]APP应用上架合规检测服务,协助应用顺利上架!

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 1115
活跃值: (122)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
2
估计是你的context里面设置了硬件断点。
把 CONTEXT_DEBUG_REGISTERS 去掉。
2010-11-17 18:28
0
雪    币: 7260
活跃值: (4245)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
多谢你,
context中没有硬件断点,把 CONTEXT_DEBUG_REGISTERS 去掉试了一下,
问题依旧.能不能加我Q:18819959
2010-11-18 08:21
0
雪    币: 1115
活跃值: (122)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
4
还有,这个可能是多线程程序,pi.hThread是另一个线程的handle
2010-11-18 11:30
0
游客
登录 | 注册 方可回帖
返回
// // 统计代码