1. python 2.X
2.安装gyp 使用gyp生成windows工程 下载地址: https://chromium.googlesource.com/external/gyp
3.进入gyp目录下使用 python setup.py install 安装gyp 安装完成后gyp目录下就会有gyp.bat文件

4.将gyp文件移动到breakpad\src\tools目录下运行进入gyp目录下运行gyp.bat --no-circular-check "../../client/windows/breakpad_client.gpy"
生成windows项目,这时进入breakpad/src/client/windows目录下就可以看到几个windows项目的解决方案


5.打开需要部署,选择添加已有项目进入breakpad/src/client/windows添加common项目的解决方案
进入breakpad/src/client/windows/crash_generation添加crash_generation_client项目解决方案
进入breakpad/src/client/windows/handler/exception_handler项目解决方案

6.点击上面添加大三个项目在debug调试情况下 项目属性->C/C++ ->代码生成->运行库 选择MDd
然后都选择生成,在项目的Debug/lib目录下就会生成需要的三个动态库


7.添加breakpad包含目录,项目属性->VC++目录->包含目录 中添加你的breakpad/src路径(根据你的breakpad路径而定)

8.添加动态库路径,项目属性->连接器->输入->附加依赖项 添加刚才生成的三个lib库的路径

9.修改main.cpp文件
#include "client\windows\handler\exception_handler.h"//breakpad头文件
int breakTest() { //测试崩溃函数
/*int zero = 0;
int n = 5 / zero;*/
int *p = NULL;
int i = *p;
return (int)i;
}
bool callback(const wchar_t *dump_path, const wchar_t *id,//崩溃触发回调
void *context, EXCEPTION_POINTERS *exinfo,
MDRawAssertionInfo *assertion,
bool succeeded)
{
if (succeeded) {
printf("dump guid is %ws\n", id);
}
else {
printf("dump failed\n");
}
return succeeded;
}
//在main函数中添加
std::wstring dump_path = L"C:\\Dumps\\";//dump文件存储路径 注意是wstring类型
google_breakpad::ExceptionHandler *eh = new google_breakpad::ExceptionHandler(
dump_path, NULL, callback, NULL,
google_breakpad::ExceptionHandler::HANDLER_ALL);
breakTest();
10.编译后打开exe文件运行 在C:dumps路径下就会生成dump文件(如果没有dumps目录请自己手动创建)
打开dumps文件就可以看到崩溃信息

本文介绍如何通过Python 2.x安装gyp并利用gyp生成Windows工程,进而使用Breakpad工具捕获程序崩溃信息。步骤包括安装配置gyp、生成Breakpad项目、设置项目属性、添加Breakpad包含目录及动态库路径,并最终通过示例代码触发并捕获崩溃。
1035

被折叠的 条评论
为什么被折叠?



