Breakpad/ARM
This page summarizes the changes necessary to port Breakpad to Linux/ARM and WinCE/ARM.
Data structures
Breakpad defines architecture-specific data structures that get stored in minidump files. ARM-specific data structures will need to be defined to store register state. See the x86 data structures, or the {amd64,ppc,ppc64,sparc} files in that same directory.
Build tools
At build time, a tool is run to read debug symbols from the platform-native format and produce a textual format. There is likely some porting work that will need to be done here:
- Linux code
- Windows code (uses the DIA SDK)
Client-side
The client-side code consists of code that writes out a minidump file, and code that submits it via HTTP.
- Linux
- The minidump generator code will need porting to ARM
- The HTTP upload code uses libcurl, hopefully this is available
- WinCE
- A minidump generator will need to be written, as the desktop Win32 code simply calls MinidumpWriteDump from DbgHelp.dll, but this is not available on WinCE. Can be patterned after the Linux implementation and the Mac implementation.
Server-side
The Breakpad processor code needs updating to handle the new ARM structures In addition, the processor needs an implementation of stack walking given the register state, stack memory, and debug info. See the x86 stack walker, or the other CPU implementations.