DescriptionThis patch allows MinidumpGenerator to dump processes that are of a different CPU architecture than the current process. This allows for dumping i386 processes from x86-64 processes running on the same system (and vice versa). For Firefox 4, we're shipping a universal 32/64 binary, and running some 32-bit plugins out-of-process when running a 64-bit Firefox. We need these changes in order for crash reporting to work on the plugin processes. This patch wound up being a lot larger than I expected, mostly due to all the changes necessary in dynamic_images and having to mess with the nlist implementation. Most of it is more refactoring than anything else, just taking code that used to assume 32 or 64-bit mach structures based on the current architecture and changing it to be templated and choosing the structures based on the architecture of the process being dumped. The CrossArchitectureDump test passes on my 10.6 system for both x86-64 and i386 (if I flip the project settings to use the 10.6 SDK). I don't have access to a 10.5 machine locally, so I don't know if it would actually work on a 64-bit capable machine running 10.5, so I decided to punt on it. I don't have access to PPC hardware either, so I can't run the tests on PPC. They fail under Rosetta, but they failed under Rosetta before my patch anyway. Patch Set 1 #
Total comments: 22
Patch Set 2 : Updated with review comments, portions rewritten #
Total comments: 43
MessagesTotal messages: 7
|