Breakpad 是一个跨平台的崩溃转储和分析框架和工具集合。
Breakpad 可以在移除编译器调试信息后,抓取、压缩 minidump 信息,将其发送回你的服务器,然后为 C/C++ 生成调用栈。Breakpad 可以在程序崩溃时触发 dump 写入操作,也可以在没有触发 dump 时主动写 dump 文件。
Breakpad 支持 Windows、Linux、macOS、Android、iOS 等平台。目前已有 Google Chrome, Firefox, Google Picasa, Camino, Google Earth 等项目使用。
Breakpad 具有三个主要组件:
-
breakpad-client:client 是一个你包含在应用程序中的库。它可以写 minidump 文件,捕捉当前线程的状态以及当前加载的可执行文件和共享库的身份认证。使用者可以配置客户端在崩溃发生时或明确要求时写一个 minidump。
-
symbol dumper 是一个程序,读取由编译器产生的调试信息,并产生一个符号文件 (symbol file)
-
processor 也是一个程序,用于读取 minidump 文件,查找相应的符号文件的可执行文件和共享库中 minidump 提到的版本,以及生成可读的 C/C++ 堆栈跟踪