This bug is intended to track work on getting us to start with WAY_TOO_MUCH_GC
First step is bug 305884, of course.
With the patches I just attached to bug 307560, bug 327708, bug 327712, and bug 327716, I can start Firefox under WAY_TOO_MUCH_GC.
Created attachment 212312 [details] [diff] [review]
debugging code used to debug these
I may want to get bits of this in; I'll discuss with brendan sometime.
With the debugging code attached (the js_LockGCThing debugging is from other debugging, of leaks), I:
* defined WAY_TOO_MUCH_GC (in patch, actually)
* set XPCOM_MEM_LOG_CLASSES=JSGCThing and XPCOM_MEM_ALLOC_LOG=JSGCThing.alloc
* ran firefox under gdb until assertion failure or crash
* looked at the GCThing in question (not necessarily the first one I looked at, but always the first or second for those 4)
* found its address in JSGCThing.alloc with
grep -A 50 ADDRESS JSGCThing.alloc | fix-linux-stack | less -S
* used the Ctor and Dtor stacks to figure out what happened
See also bug 327996 with some ideas on improving WAY_TOO_MUCH_GC.