一日一点RakNet(55)--Crash Reporter(崩溃报告器)
2013-12-08 20:17
267 查看
一日一点RakNet(55)--Crash Reporter(崩溃报告器)
分类:一日一点RakNet 2012-05-17 14:54
1005人阅读 评论(0)
收藏
举报
exe硬件驱动email服务器windows磁盘
崩溃报告器概览
Minidumps使得崩溃报告功能容易实现
CrashReporter可以在RakNet/Samples/CrashReporter中找到,仅仅可以用于Windows平台,它的作用是调试无监控的服务器或游戏客户端。当崩溃发生时,CrashReporter会捕捉异常,写一个minidump,然后将信息写到磁盘或发送email。Email的操作可以是交互式,打开用户的email客户端。或者是非交互式的,使用EmailSender类连接到mail服务器,自动发送崩溃报告。
从CrashReporter.h中复制
Minidump可以在visual studio中打开,可以查看在何处发生了崩溃,给出你本地的变化值。
如何使用minidump:
在硬件驱动器上放置minidump,双击它可以打开,使用Visual Studio打开。它会自动在引起崩溃的exe文件所在的目录寻找该exe文件。如果无法找到该exe文件,或者exe文件是不同的另外的文件,vs会在当前目录查找这个exe文件。如果仍然找不到,或者找到的文件是不同的一个文件,它会加载vs,指明vs无法找到可执行模块。这时会给出没有源码的提示。然而,在工程属性窗口中的命令行参数中指定modpath=<pathToExeDirectory>。最好的解决方法是将.dmp文件拷贝到一个包含了崩溃exe文件复件目录下。
一旦加载了,VS会寻找.pdb文件,这个文件用于查找源码文件和其他的信息。只要在你的硬盘上的源码文件与创建exe的相符就可以。如果不相符,你需要查看源代码,但是它可能是错误的源码。有三种方法处理这种情况。
第一种方法是修改指定源码位置的路径,那么就不会自动查找到错误的代码。这会导致debugger不会发现在.pdb中指向的源码。Vs会提醒你正确源码的位置。
第二中方法是在不同的路径路径构建一个exe文件。例如,当你在release发布时使用的是c:/Working/Mygame路径,可以在c:/Version2.2/Mygame目录下重新构建exe文件。构建完成之后,保持本目录下的源码文件,exe,和pdb不变。当收到了崩溃的.dmp时,将它拷贝到exe相同的目录,也就是c:/Version2.2/Mygame/bin目录。这样.pdb文件会指向正确的崩溃源码上。
第三种方法是保存构建的标记或源码控制中的分支,在调试之前得到这个版本 (你仅仅需要源码,.exe和.pdb)。调试之后,保存你先前的工作。
使用:
#include “DbgHelp.h”
相关文章推荐
- 一日一点RakNet(55)--Crash Reporter(崩溃报告器)
- RakNet(54)学习 -- Crash Reporter(崩溃报告器)
- 一日一点RakNet(1)--RakNet
- 一日一点RakNet(21)--Statistics
- 一日一点RakNet(29)--Marmalade integration
- 一日一点RakNet(47)--RakVoice
- 一日一点RakNet(3)--介绍
- 一日一点RakNet(5)--详细实现
- 一日一点RakNet(8)--第三方支持
- 一日一点RakNet(30)--Interface 2插件
- 一日一点RakNet(41)--Lobby2Client_360
- 一日一点RakNet(60)--PHP Directory Server(目录服务器)
- 一日一点RakNet(23)--Cloud hosting
- 一日一点RakNet(42)--Lobby2Client-Games for Windows Live
- 一日一点RakNet(48)--ReadyEvent
- 一日一点RakNet(54)--TwoWayAuthentication插件
- 一日一点RakNet(12)--Creating Packets
- 一日一点RakNet(31)--Autopatcher
- 一日一点RakNet(43)--Message Filter
- 一日一点RakNet(49)--Replica Manager 3