windows10下使用gyp编译google_breakpad

2017-12-01 08:51:06来源:CSDN作者:cz_jjq人点击

分享

看到这个跨平台的开源项目后希望在自己的项目中使用,在网上转了一圈后发现很多文章都不太正确(或失效),特自己记录下整个过程。

最新的google_breakpad中已经不包含gyp的源码,因此需要单独下载gpy源码并安装。而gpy依赖于python 2.x,我使用了最新的python 2.7.14。

安装python 2.7.14

整个最简单,不表。windows默认安装到了c:/Python27下,此时要将如下目录加入windows path变量:

c:/Python27
c:/Python27/Scripts

安装gyp

在github上下载一份gyp源码,我从这里下载 https://github.com/adblockplus/gyp

执行以下代码安装:

setup.py install

安装google_breakpad

从github上下载google_breakpad。

在breakpad-master/src/client/windows目录下打开cmd窗口,执行如下命令:

 gyp --no-circular-check "./breakpad_client.gyp"#不加--no-circular-check的话,gyp会发现此处的项目有循环依赖问题

上述命令执行成功后,会在当前目录生成visualstudio项目文件,安装正常的vs项目完成编译工作即可(我在这里出现了test项目编译错误的情况,但breakpad是可用的)。

编译完成之后,运行crash_generation_app吧,这是他的测试程序,dump的默认位置保存在C:/Dumps下,请注意先建立好目录,不然会无法使用。
启动测试程序之后,此时还不能抓取dump,因为这个是breakpad中的服务器端,需要再启动一个测试程序,在第二个测试程序中,我们就可以试验Client菜单中的各种崩溃了。这些崩溃都会被抓住转存到C:Dumps目录下。

使用注意事项

使用breakpad的时候,有两个地方需要注意:
1. 记得把breakpad的solution下的几个工程,包含到你开发的工程中,或者直接包含他们的lib。
common:基础功能,包含一个对GUID的封装和http上传的类。
exception_handler:用来捕获崩溃的类。
crash_generation_server:breakpad的服务端,用来在产生崩溃时抓取dump。
crash_generation_client:breakpad的客户端,用来捕获当前进程的崩溃。
2. 在初始化breakpad之前,记得先创建好dump文件的目录,不然breakpad服务端将不能正常的写dump,这会导致breakpad客户端在崩溃时无限等待服务端dump写完的消息,最后失去响应。

最新文章

123

最新摄影

闪念基因

微信扫一扫

第七城市微信公众平台