Win10+VS2015 下载、编译和使用google breakpad
来源:互联网 发布:java socket 多次发送 编辑:程序博客网 时间:2024/06/04 23:20
一、下载准备
1.1 下载breakpad
breakpad源码官方网址:https://chromium.googlesource.com/breakpad/breakpad
官方下载方法,git命令:
git clone https://chromium.googlesource.com/breakpad/breakpad
但如果下载出错,如:
Cloning into ‘breakpad’…
fatal: unable to access ‘https://chromium.googlesource.com/breakpad/breakpad/‘: Failed to connect to chromium.googlesource.com port 443: Timed out
可尝试用git命令:
git clone https://chromium.googlesource.com/breakpad/breakpad.git
或者
git clone http://chromium.googlesource.com/breakpad/breakpad.git
1.2 下载gyp
git命令:
git clone https://chromium.googlesource.com/external/gyp
1.3 下载googletest
git命令:
git clone https://github.com/google/googletest.git
1.4 安装python2.7
用gyp打包breakpad时需要python支持,python在官网下载安装并添加到环境变量中,比较简单,自行百度。不过不能安装python3,据说会出错,没亲自试过。
二、编译
1)gyp文件夹复制到breakpad\src\tools\文件夹下
2)breakpad\src\目录下,新建文件夹并命名为testing。
3)将googletest文件夹下的googletest和googlemock文件夹复制到breakpad\src\testing\文件夹下。
4)用gyp构建出工程文件。打开cmd命令窗口,cd进入到breakpad\src\tools\gyp目录,执行命令:
gyp.bat --no-circular-check ..\..\client\windows\breakpad_client.gyp
如果想用vs2005编译,则执行上面命令前,需要先对版本进行设置:
set GYP_MSVS_VERSION=2005
5)Visual Studio 2015打开breakpad\src\client\windows\目录下的breakpad_client.sln工程。
右键build_all项目,点击生成。成功后在breakpad\src\client\windows\Debug\lib文件夹下会有各lib库生成。
我用的是Win10和VS2015社区版,这个编译过程没有出现过任务错误,比较顺利。如果有错误,可参考http://blog.csdn.net/bingzhongdehuoyan/article/details/53860433解决。
测试
1)新建一个工程testcrash,新建main.cpp:
#include <cstdio>#include "client/windows/handler/exception_handler.h"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"); } system("pause"); return succeeded;}int mydiv(int x, int y){ int z; z = x / y; return z;}int main(){ google_breakpad::ExceptionHandler eh( L".", NULL, callback, NULL, google_breakpad::ExceptionHandler::HANDLER_ALL); printf("9/3=%d\n", mydiv(9, 3)); printf("9/0=%d\n", mydiv(9, 0)); //程序将在此崩溃 printf("8/2=%d\n", mydiv(8, 2)); system("pause"); return 0;}
2)然后右键wincrash->属性->VC++目录->包含目录->编辑:加入 你的路径\breakpad\src\
3)右键wincrash->属性->链接器->输入->附加依赖项->编辑:加入lib库
你的路径\lib\common.lib你的路径\lib\crash_generation_client.lib你的路径\lib\crash_generation_server.lib你的路径\lib\exception_handler.lib
4)右键wincrash->属性->C/C++->代码生成->运行库->多线程调试 (/MTd)
5)编译程序,运行。
6)在main.cpp文件所在文件夹里生成.dump文件。用VS2015打开。点击使用 仅限本机 进行调试,可以看到错误详情及错误具体发生在哪行代码。
参考文献:
http://blog.csdn.net/bingzhongdehuoyan/article/details/53860433
- Win10+VS2015 下载、编译和使用google breakpad
- Google Breakpad--VS2015 编译、使用、定位错误(如何使用gyp)
- 嵌入式linux上Google breakpad编译使用
- google breakpad使用心得
- google/protobuf--VS2015编译、使用
- Google Breakpad 简介与使用
- Win10+VS2015编译libcurl
- win10 vs2015 libs3 编译
- win10 vs2015 opencv编译
- win10 vs2015 wxWidgets编译
- win10 vs2015 编译 wxSqlite3
- win10 vs2015 freetype2编译
- VLfeat win10 vs2015 编译
- expat win10+vs2015编译
- win10+vs2015 meshlab编译
- OGRE win10 Vs2015编译
- win10+VS2015+pycaffe编译
- [Google Breakpad] windows平台下的编译
- numpy 矩阵求和小技巧
- [Redis学习笔记]-Redis 性能测试
- ADV-216 5-3日历
- python读取txt文件中的数据
- 记一次Gentoo无法连接pptp协议的VPN故障
- Win10+VS2015 下载、编译和使用google breakpad
- 文件服务器之FTP服务器
- SDUT 3346 数据结构实验之二叉树七:叶子问题
- 题目: 编写一个学生类Students,该类成员变量包括学号no、姓名name、性别sex和年龄age
- mybatis 中 foreach collection的三种用法之Array
- 吴恩达深度学习课程四:卷积神经网络(学习笔记)
- JZOJ 5460. 【NOIP2017提高A组冲刺11.7】士兵训练
- SSH框架中web.xml配置
- 例子---JS实现钟表