欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

breakpad库编译说明

程序员文章站 2022-07-07 23:46:27
breakpad下载编译 1. breakpad是什么,能干什么 google开源的一整套的进程crash处理方案, 包括crash采集,符号的提取,dump的上传服务器,...

breakpad下载编译

1. breakpad是什么,能干什么

google开源的一整套的进程crash处理方案, 包括crash采集,符号的提取,dump的上传服务器,dump 的分析。

2. breakpad如何下载

下载chromium工具集 depot_tools,google的好多源码的下载编译都用它的。

配置下载的depot_tools到%PATH%(windows),或 export PATH=${PATH}:depotpath ,这样可以直接使用depotoath中的工具了

准备开始下载代码:

建议使用depot_tools中的工具,可以一起把第三方的依赖文件下载下来:

fetch breakpad

使用git下载:

git下载后编译android版有问题, 一些第三方库没有下载下来,需要手动下载。mac,window没有问题。

3. breakpad如何编译

1. macos编译

mac编译crash采集framwork。

    打开src/client/mac目录已经有xcode工程,选择编译目标 Breakpad,开始编译生成的Breakpad.app这个framework

我在编译的时候提示错误

error: There is no SDK with the name or path ‘/Users/**/opensource/breakpad/breakpad-source/src/client/mac/macosx10.5’。修改一下xcode Build settings/Base sdk就OK了

符号提取工具dump_syms

   /src/tools/mac/dump_syms/dump_syms.xcodeproj
  编译错误:     

Showing Recent Messages

“google_breakpad::BaseName(std::__1::basic_string

4. breakpad如何使用

  需要采集crash的程序,加载上面3编译的framework。

  编译生成可执行文件example后, 
  1.提取符号
  dump_syms example>example.sym

  2.创建符号目录
    mysymbols/模块名称/模块的唯一id/example.sym
    模块名称和模块的唯一id生成在example.sym文件中第一行
  3.分析crash
    minidump_stackwalk  xxx.dmp mysymbols/
    这样minidump_stackwalk会在mysymbols目录中查找xxx对应的symbol