| OLD | NEW |
| 1 # Introduction | 1 # Introduction |
| 2 | 2 |
| 3 Breakpad is a library and tool suite that allows you to distribute an | 3 Breakpad is a library and tool suite that allows you to distribute an |
| 4 application to users with compiler-provided debugging information removed, | 4 application to users with compiler-provided debugging information removed, |
| 5 record crashes in compact "minidump" files, send them back to your server, and | 5 record crashes in compact "minidump" files, send them back to your server, and |
| 6 produce C and C++ stack traces from these minidumps. Breakpad can also write | 6 produce C and C++ stack traces from these minidumps. Breakpad can also write |
| 7 minidumps on request for programs that have not crashed. | 7 minidumps on request for programs that have not crashed. |
| 8 | 8 |
| 9 Breakpad is currently used by Google Chrome, Firefox, Google Picasa, Camino, | 9 Breakpad is currently used by Google Chrome, Firefox, Google Picasa, Camino, |
| 10 Google Earth, and other projects. | 10 Google Earth, and other projects. |
| 11 | 11 |
| 12 ![http://google-breakpad.googlecode.com/svn/wiki/breakpad.png] | 12  |
| 13 (http://google-breakpad.googlecode.com/svn/wiki/breakpad.png) | |
| 14 | 13 |
| 15 Breakpad has three main components: | 14 Breakpad has three main components: |
| 16 | 15 |
| 17 * The **client** is a library that you include in your application. It can | 16 * The **client** is a library that you include in your application. It can |
| 18 write minidump files capturing the current threads' state and the identities | 17 write minidump files capturing the current threads' state and the identities |
| 19 of the currently loaded executable and shared libraries. You can configure | 18 of the currently loaded executable and shared libraries. You can configure |
| 20 the client to write a minidump when a crash occurs, or when explicitly | 19 the client to write a minidump when a crash occurs, or when explicitly |
| 21 requested. | 20 requested. |
| 22 | 21 |
| 23 * The **symbol dumper** is a program that reads the debugging information | 22 * The **symbol dumper** is a program that reads the debugging information |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 83 that writing the minidump from within the crashed process is unsafe - key | 82 that writing the minidump from within the crashed process is unsafe - key |
| 84 process data structures could be corrupted, or the stack on which the exception | 83 process data structures could be corrupted, or the stack on which the exception |
| 85 handler runs could have been overwritten, etc. All 3 platforms support what's | 84 handler runs could have been overwritten, etc. All 3 platforms support what's |
| 86 known as "out-of-process" exception handling. | 85 known as "out-of-process" exception handling. |
| 87 | 86 |
| 88 # Integration overview | 87 # Integration overview |
| 89 | 88 |
| 90 ## Breakpad Code Overview | 89 ## Breakpad Code Overview |
| 91 | 90 |
| 92 All the client-side code is found by visiting the Google Project at | 91 All the client-side code is found by visiting the Google Project at |
| 93 http://code.google.com/p/google-breakpad. The following directory structure is | 92 https://chromium.googlesource.com/breakpad/breakpad/. The following directory |
| 94 present in the `src` directory: | 93 structure is present in the [src](/src/) directory: |
| 95 | 94 |
| 96 * `processor` Contains minidump-processing code that is used on the server | 95 * [processor](/src/processor/): Contains minidump-processing code that is used o
n the |
| 97 side and isn't of use on the client side | 96 server side and isn't of use on the client side |
| 98 * `client` Contains client minidump-generation libraries for all platforms | 97 * [client](/src/client/): Contains client minidump-generation libraries for all |
| 99 * `tools` Contains source code & projects for building various tools on each | 98 platforms |
| 100 platform. | 99 * [tools](/src/tools/): Contains source code & projects for building various too
ls on |
| 100 each platform. |
| 101 | 101 |
| 102 (Among other directories) | 102 (Among other directories) |
| 103 | 103 |
| 104 * <a | 104 * [Windows Integration Guide](./windows_client_integration.md) |
| 105 href='http://code.google.com/p/google-breakpad/wiki/WindowsClientIntegration
'>Windows | 105 * [Mac Integration Guide](./mac_breakpad_starter_guide.md) |
| 106 Integration Guide</a> | 106 * [Linux Integration Guide](./linux_starter_guide.md) |
| 107 * <a | |
| 108 href='http://code.google.com/p/google-breakpad/wiki/MacBreakpadStarterGuide'
>Mac | |
| 109 Integration Guide</a> | |
| 110 * <a href='http://code.google.com/p/google-breakpad/wiki/LinuxStarterGuide'> | |
| 111 Linux Integration Guide</a> | |
| 112 | 107 |
| 113 ## Build process specifics(symbol generation) | 108 ## Build process specifics(symbol generation) |
| 114 | 109 |
| 115 This applies to all platforms. Inside `src/tools/{platform}/dump_syms` is a tool | 110 This applies to all platforms. Inside `src/tools/{platform}/dump_syms` is a tool |
| 116 that can read debugging information for each platform (e.g. for OS X/Linux, | 111 that can read debugging information for each platform (e.g. for OS X/Linux, |
| 117 DWARF and STABS, and for Windows, PDB files) and generate a Breakpad symbol | 112 DWARF and STABS, and for Windows, PDB files) and generate a Breakpad symbol |
| 118 file. This tool should be run on your binary before it's stripped(in the case of | 113 file. This tool should be run on your binary before it's stripped(in the case of |
| 119 OS X/Linux) and the symbol files need to be stored somewhere that the minidump | 114 OS X/Linux) and the symbol files need to be stored somewhere that the minidump |
| 120 processor can find. There is another tool, `symupload`, that can be used to | 115 processor can find. There is another tool, `symupload`, that can be used to |
| 121 upload symbol files if you have written a server that can accept them. | 116 upload symbol files if you have written a server that can accept them. |
| OLD | NEW |