需要作个监控程序,监控系统中已运行进程的各种情况,有没有办法可以获知被监控进程的异常情况,比如访问了一个无效指针,弹出windows标准的异常窗口

解决方案 »

  1.   

    This function retrieves the context of the specified thread.BOOL GetThreadContext( 
      HANDLE hThread, 
      LPCONTEXT lpContext 
    );
      

  2.   

    老大,能说的详细些么?查了一下CONTEXT的资料,网上不多啊
    如果进程发生异常,寄存器里有特定的标志么?
      

  3.   

    找到一个:
    标志寄存器
    RF(Restart Flag):重启标志,它的宽度是1位。它主要控制是否接受调试故障。RF=0接受,RF=1忽略。如果你的程序每一条指令都被成功执行,那么RF会被清0。而当接受到一个非调试故障时,处理器置RF=1。
      

  4.   

    一等一的高手都来了,哈哈。谢谢大家捧场!
      说一下需求吧,我要作的是一个看门狗程序,检测同一机器上的各种服务进程(基本上都是第三方的),当发现有服务发生异常或长时间未响应时,就干掉并重启。
      进程长时间未响应,这个好判断,现在就是苦于不知如何判断一个进程是否发生了异常,希望大家多给些思路。
      “theendname(闲时来走走,顺道来踩踩)”,你的办法能说得更详细些么?谢谢了