码迷,mamicode.com
首页 > 其他好文 > 详细

DUMP相关知识

时间:2015-03-18 10:19:21      阅读:136      评论:0      收藏:0      [点我收藏+]

标签:

1.初始化breakpad之前必须创建好dump文件目录,不然breakpad服务器不能正常的写dump,这回导致breakpad客户端在奔溃时无线等待服务dump写完的消息,最后失去响应。
2.常用到的四个类。
1)common:基础功能,包含一个对GUID的封装和http上传的类。
2)exception_handler:用来捕获奔溃的类。
3)crash_generation_server:breakpad的服务端,用来在产生奔溃时抓取dump;
4)crash_generation_client:breakpad的客户端,用来捕获当前进程的奔溃。
3.dump可以在进程内核进程外使用
1)当在进程外使用时,只需要使用ExceptionHandler。ExceptionHandler会挂上异常处理、CRT参数错误处理、purecall错误处理,当发生crash时,breakpad会写好dump,然后回调通知使用者。
2)进程外写dump,使用者一样要定义一个ExceptionHandler对象,这对象有管道名称。另外还需要写一个server进程,server进程负责:写dump、上传dump,当客户进程发生crash时,只需要通过Event置位通知服务进程。server进程只需要定义一个breakpad提供的CrashGenerationServer类对象。客户进程和服务进程是通过管道通信的,通信可以只发生在客户进程初始化阶段,server进程要先于客户进程启动,否则客户进程就会因为管道连接不上而使用进程内dump捕获。

(一)Windows 系统异常处理顺序

1.内核异常处理
2.调试器异常处理
3.进程VEH
3.线程SEH
4.进程SetUnhandledExceptionFilter()注册的函数
5.系统默认的异常处理函数 UnhandledExcetionFilter(). UnhandledExceptionFilter()根据 HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug子键中的项来处理.

DUMP相关知识

标签:

原文地址:http://www.cnblogs.com/lailaio/p/4346270.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!