一日一点RakNet(55)--Crash Reporter(崩溃报告器)
来源:互联网 发布:机械类软件 编辑:程序博客网 时间:2024/05/22 08:04
崩溃报告器概览
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”
连接DbgHelp.lib和ws2_32.lib库。
By北洋小郭
转载请注明出处,请勿用于任何商业用途,谢谢。
- 一日一点RakNet(55)--Crash Reporter(崩溃报告器)
- 一日一点RakNet(55)--Crash Reporter(崩溃报告器)
- RakNet(54)学习 -- Crash Reporter(崩溃报告器)
- 一日一点RakNet(1)--RakNet
- 一日一点RakNet(1)--RakNet
- Unity中Android和Ios平台的crash reporter(崩溃报告采集与上传)
- 一日一点RakNet(0) -- 开篇
- 一日一点RakNet(3)--介绍
- 一日一点RakNet(10)--Startup
- 一日一点RakNet(11)--Connecting
- 一日一点RakNet(15)--SystemAddress
- 一日一点RakNet(16)--BitStream
- 一日一点RakNet(20)--NetworkIDObject
- 一日一点RakNet(21)--Statistics
- 一日一点RakNet(31)--Autopatcher
- 一日一点RakNet(36)--FileListTransfer
- 一日一点RakNet(41)--Lobby2Client_360
- 一日一点RakNet(47)--RakVoice
- GPU入门------概念篇(硬件,CUDA,OPENCL)
- 图片分左右不同点击效果不同的处理方法
- 跟JBPM学习设计模式之简单工厂模式
- TextView属性小结
- Android获取手机号/手机串号 现在已经不能获取了
- 一日一点RakNet(55)--Crash Reporter(崩溃报告器)
- javascript求教高手(连数据库没问题)
- php/回顾1
- LaTeX如何设行间距为20磅
- string 和StringBuilder的引用的区别
- 公司间转移过帐介绍与IMG设置(公司间采购订单+交易价格确定+流程测试)
- EXTJS 专题 TreePanel
- 正则表达式函数待完善
- Java中实现对象的Clone