waithome 2015-11-12 09:19 采纳率: 100%
浏览 2085
已采纳

各位大虾, 我想在程序里监视系统上运行的某些程序运行过程中是否报错异常,能实现吗? 怎么实现?

对于程序运行过程中卡死已经能检测,但是对于一些弹框类的运行出错却不知道怎么检测,请各位大虾指点迷津; 现在没有C币,如果回答是我想要的,我花钱补上

  • 写回答

7条回答 默认 最新

  • zuishikonghuan 2015-11-13 14:54
    关注

    这不就是编写一个华医生么(注:华医生是微软系统上负责处理应用程序崩溃的程序,就是你图上的“xxx已停止工作,Windows正在联机查找解决方案”),这是一个应用程序,是在用户模式下实现的,而并非在内核中实现,其实华医生也可以卸载掉,卸载之后程序崩溃就变成了“xxx进程试图访问的xxx内存,其内存不能为read/write/execute”(或者是压根没提示了)。但遗憾的是,微软并没有公开华医生的实现原理,而事实上华医生也不是微软本来打算做的,而是微软公司中一个技术大牛编写后植入Windows的。当一个应用程序出现异常时,异常会按照这种方法传递:调试出错进程的调试器进程->进程设置的自己的异常处理函数->华医生。所以华医生也有其缺陷,因为对于自己设置了异常处理的程序,他捕获不到异常,比如QQ崩溃,打开的是QQ自己设置的出错提示窗口,但是我们可以发现,调试器的优先级最高,也就是说,我们可以调试目标进程,在进程崩溃的时候就能最先拿到异常数据了,调试一个进程的方法有两种,第一种是createprocess时添加一个调试进程的flag,第二种是动态设置调试,是有一个API的,有关调试进程如何获取异常信息的,网上有很多资料,搜索Windows调试API

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(6条)

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题