设为首页
收藏本站
本站论坛
   
3
3
   
  文章列表      

在Windows98下使用调试API时遇到的问题?求助

Windows98下使调试API时遇到问题求助

点击:0  CoomyMorris (来者)     2004-02-24 20:31:34 在  /  提问
我在Windows98下想实现对进程的挂起及继续,由于Windows98下除了Win32调试API以外我不知道还有什么方法可以得到任意线程的句柄,所以我就用Win32调试API。我遇到的问题如下:   
  我写了一个很小的对话框程序,当按下对话框上的一个按钮后CreateThread()设为t1,t1负责循环检测系统中当前运行的进程,如有新进程生成则CreateThread()设为t2,t2负责对该进程进行调试,DebugActiveProcess()然后是一个循环执行WaitForDebugEvent()和ContinueDebugEvent()。并且在ContinueDebugEvent()时还对EXCEPTION_BREAKPOINT异常进行的DBG_CONTINUE的恢复处理。编译通过,执行时问题出现了。有的时候程序运行正常,DebugActiveProcess()挂起了新启动的进程,WaitForDebugEvent()和ContinueDebugEvent()循环恢复了被挂起进程的执行。有的时候新启动的进程被挂起,但却恢复不了。WaitForDebugEvent()执行失败没有收到调试事件,这是不应该的。当错误发生时,所有被挂起的进程都只有2个线程。我的分析是,2个线程中有一个是被挂起进程的主线程,另一个是系统给被挂起进程生成的,当进程被挂起时该进程生成一个线程向调试线程发送调试事件。但为何我生成的调试线程t2没有收到调试事件从而执行WaitForDebugEvent()失败。而且有时执行时成功的。这是为何? 
> >更多精彩技术文章>http://www.66of.com
 
 
   
 
网上赚钱申请指南
 

友情链接
个人主页
 
 
 
 

wel come to . 欢迎光临
宇宙浪仔