Google Breakpad原理及说明
作者:lds( lds2012@gmail.com ) 日期:2017-03-24 一. BreakPad简介 Google breakpad是一个跨平台的崩溃转储和分析框架和工具集合。 Breakpad由三个主要组件: client,以library的形式内置在你的应用中,当崩溃发生时写 minidump文件 symbol dumper, 读取由编译器生成的调试信息(debugging information),并生成 symbol file processor, 读取 minidump文件 和 symbol file ,生成可读的c/c++ Stack trace. 简单来说就是一个生成 minidump,一个生成symbol file,然后将其合并处理成可读的Stack trace。 二. MiniDump文件格式 minidump文件格式是由微软开发的用于崩溃上传,它包括: 当dump生成时进程中一系列executable和shared libraries, 包括这些文件的文件名和版本号。 进程中的线程列表,对于每个线程,minidump包含它在寄存器中的状态,线程的stack memory内容。这些数据都是未解析的字节流,Breakpad client通常没有调试信息(debugging information)能生成函数名,行号,甚至无法确定stack frame的边界