Google Breakpad Windows项目部署

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

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文件就可以看到崩溃信息


您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值