This would allow us to gather statistics on GC crashes more easily -- and even if stack walking fails. (For bonus points, say whether it's a compartment / multi-compartment / global GC)
This is a little bit of a PITA, because only the JS engine knows if we're GCing, right? And the JS engine doesn't know how to talk to Breakpad directly. Do we have a callback that happens when we enter/leave GC where Gecko could add this annotation?
Yeah, xpconnect already knows when we're in a GC, and it can talk to breakpad.
We can either dump it in the xpconnect callback (http://mxr.mozilla.org/mozilla-central/source/js/xpconnect/src/XPCJSRuntime.cpp#583) or register a special callback (http://mxr.mozilla.org/mozilla-central/source/js/xpconnect/src/nsXPConnect.cpp?force=1#2299) to do so, which is conceptually a bit cleaner.
Created attachment 651060 [details] [diff] [review] patch This seems to do the job, at least on Linux.
Comment on attachment 651060 [details] [diff] [review] patch Remove the stray printf in CrashReporter::SetGarbageCollecting. I'm torn on whether we should be writing "IsGarbageCollecting=0" ever; perhaps it would be better to only write that field if we are garbage collecting?
https://hg.mozilla.org/integration/mozilla-inbound/rev/dad98b444955 I changed it so the field is only written if it's 1.
Comment on attachment 651060 [details] [diff] [review] patch Just a note about this request: This patch doesn't fix any bugs. It just adds data to crashreports that make it easier to see which crashes are GC-related. Given that incremental GC landed in FF16, it would be really useful to be able to compare crash rates between 15 and 16. That's why I'm requesting beta approval. [Approval Request Comment] Bug caused by (feature/regressing bug #): None. User impact if declined: None. Testing completed (on m-c, etc.): On m-c. Risk to taking this patch (and alternatives if risky): Very low. String or UUID changes made by this patch: None.
Comment on attachment 651060 [details] [diff] [review] patch Approving for branches so we're able to get better crash data.