0:014> ~k ChildEBP RetAddr 01aaf3fc 00aedbfe js3250!JS_ReportOutOfMemory [c:\build\chs4.0\build\mozilla\js\src\jsapi.c @ 4510] 01aaf428 00b13e44 js3250!js_NewGCThing+0x16b [c:\build\chs4.0\build\mozilla\js\src\jsgc.c @ 697] 01aaf440 00b14821 js3250!js_NewString+0x2b [c:\build\chs4.0\build\mozilla\js\src\jsstr.c @ 2523] 01aaf480 00af1eb0 js3250!js_ConcatStrings+0x199 [c:\build\chs4.0\build\mozilla\js\src\jsstr.c @ 183] 01aaf5f4 00aeeae8 js3250!js_Interpret+0x2acb [c:\build\chs4.0\build\mozilla\js\src\jsinterp.c @ 2922] 01aaf6a0 00b15f22 js3250!js_Invoke+0x597 [c:\build\chs4.0\build\mozilla\js\src\jsinterp.c @ 1197] 01aaf758 00b161e7 js3250!find_replen+0x1c7 [c:\build\chs4.0\build\mozilla\js\src\jsstr.c @ 1512] 01aaf778 00b15bc5 js3250!replace_glob+0xb6 [c:\build\chs4.0\build\mozilla\js\src\jsstr.c @ 1600] 01aaf7a8 00b163c1 js3250!match_or_replace+0x1f1 [c:\build\chs4.0\build\mozilla\js\src\jsstr.c @ 1197] 01aaf80c 00aeeaa7 js3250!str_replace+0x14d [c:\build\chs4.0\build\mozilla\js\src\jsstr.c @ 1672] 01aaf8c0 00af439a js3250!js_Invoke+0x556 [c:\build\chs4.0\build\mozilla\js\src\jsinterp.c @ 1177] 01aafa34 00aeeae8 js3250!js_Interpret+0x4fb5 [c:\build\chs4.0\build\mozilla\js\src\jsinterp.c @ 3524] 01aafae0 00af439a js3250!js_Invoke+0x597 [c:\build\chs4.0\build\mozilla\js\src\jsinterp.c @ 1197] 01aafc54 00aeeae8 js3250!js_Interpret+0x4fb5 [c:\build\chs4.0\build\mozilla\js\src\jsinterp.c @ 3524] 01aafd00 00ab21fa js3250!js_Invoke+0x597 [c:\build\chs4.0\build\mozilla\js\src\jsinterp.c @ 1197] 01aafe68 00aaf78b xpc3250!nsXPCWrappedJSClass::CallMethod+0x6b1 [c:\build\chs4.0\build\mozilla\js\src\xpconnect\src\xpcwrappedjsclass.cpp @ 1369] 01aafe80 0086767f xpc3250!nsXPCWrappedJS::CallMethod+0x27 [c:\build\chs4.0\build\mozilla\js\src\xpconnect\src\xpcwrappedjs.cpp @ 515] 01aaff38 008676f2 xpcom_core!PrepareAndDispatch+0xee [c:\build\chs4.0\build\mozilla\xpcom\reflect\xptcall\src\md\win32\xptcstubs.cpp @ 117] 01aaff54 00859b66 xpcom_core!SharedStub+0x16 [c:\build\chs4.0\build\mozilla\xpcom\reflect\xptcall\src\md\win32\xptcstubs.cpp @ 147] 01aaff60 30015631 xpcom_core!nsThread::Main+0x1e [c:\build\chs4.0\build\mozilla\xpcom\threads\nsthread.cpp @ 134] 0:014> .frame 1 01 01aaf428 00b13e44 js3250!js_NewGCThing+0x16b [c:\build\chs4.0\build\mozilla\js\src\jsgc.c @ 697] 0:014> dv cx = 0x01d017a0 flags = 3 nbytes = 8 flagp = 0x009af124 "" tried_gc = 1 flp = 0x009af124 q = 0x7c34240d 0:014> dt JSContext 0x01d017a0 +0x000 links : JSCListStr +0x008 interpLevel : 3 +0x00c stackLimit : 0 +0x010 version : 0x1000 +0x012 jsop_eq : 0x12 '' +0x013 jsop_ne : 0x13 '' +0x014 runtime : 0x009af008 JSRuntime +0x018 stackPool : JSArenaPool +0x034 fp : 0x01aaf614 JSStackFrame +0x038 tempPool : JSArenaPool +0x054 globalObject : 0x029c2238 JSObject +0x058 newborn : [16] 0x0b1cd9d8 JSGCThing +0x098 lastAtom : 0x009f47a0 JSAtom +0x09c lastInternalResult : 0xb1cd9cc +0x0a0 regExpStatics : JSRegExpStatics +0x118 sharpObjectMap : JSSharpObjectMap +0x124 argumentFormatMap : 0x0a5c5008 JSArgumentFormatMap +0x128 lastMessage : (null) +0x12c branchCallback : (null) +0x130 errorReporter : 0x00ab10f7 xpc3250!xpcWrappedJSErrorReporter+0 +0x134 data : (null) +0x138 dormantFrameChain : (null) +0x13c thread : 0xa91f60 +0x140 requestDepth : 2 +0x144 scopeToShare : (null) +0x148 lockedSealedScope : (null) +0x14c rval2 : 0 +0x150 rval2set : 0 '' +0x151 xmlSettingFlags : 0 '' +0x152 creatingException : 0 '' +0x153 throwing : 0 '' +0x154 exception : 0x5995878 +0x158 options : 0 +0x15c localeCallbacks : (null) +0x160 resolvingTable : 0x05701fe8 JSDHashTable +0x164 stackHeaders : 0x0a40a524 JSStackHeader +0x168 localRootStack : (null) 0:014> dt JSRuntime 0x009af008 +0x000 state : 2 ( JSRTS_UP ) +0x004 gcArenaPool : [10] JSArenaPool +0x11c gcFreeList : [10] (null) +0x144 gcRootsHash : JSDHashTable +0x164 gcLocksHash : 0x00eb3340 JSDHashTable +0x168 gcKeepAtoms : 0 +0x16c gcBytes : 0x400002 +0x170 gcLastBytes : 0x82503 +0x174 gcMaxBytes : 0x400000 +0x178 gcLevel : 0 +0x17c gcNumber : 0x1b +0x180 gcPoke : 0x1 '' +0x181 gcRunning : 0 '' +0x184 gcCallback : 0x0134731f gklayout!DOMGCCallback+0 +0x188 gcMallocBytes : 0x1b7d63 +0x18c gcPrivateBytes : 0x5f6847 +0x190 gcDoomedNamespaces : (null) +0x194 gcDoomedQNames : (null) +0x198 gcDoomedXML : (null) +0x19c atomState : JSAtomState +0x340 rngInitialized : 0 +0x348 rngMultiplier : 0 +0x350 rngAddend : 0 +0x358 rngMask : 0 +0x360 rngSeed : 0 +0x368 rngDscale : 0 +0x370 jsNaN : 0x009b1fa0 -> 1.#QNAN +0x374 jsNegativeInfinity : 0x009b1fb0 -> -1.#INF +0x378 jsPositiveInfinity : 0x009b1fa8 -> 1.#INF +0x37c emptyString : 0x009b1fb8 JSString +0x380 contextList : JSCListStr +0x388 interruptHandler : (null) +0x38c interruptHandlerData : (null) +0x390 newScriptHook : 0x00e12801 jsd3250!jsd_NewScriptHookProc+0 +0x394 newScriptHookData : 0x00a2f620 +0x398 destroyScriptHook : 0x00e1287b jsd3250!jsd_DestroyScriptHookProc+0 +0x39c destroyScriptHookData : 0x00a2f620 +0x3a0 debuggerHandler : 0x00e11e91 jsd3250!jsd_DebuggerHandler+0 +0x3a4 debuggerHandlerData : 0x00a2f620 +0x3a8 sourceHandler : (null) +0x3ac sourceHandlerData : (null) +0x3b0 executeHook : 0x00e13865 jsd3250!jsd_TopLevelCallHook+0 +0x3b4 executeHookData : 0x00a2f620 +0x3b8 callHook : 0x00e13808 jsd3250!jsd_FunctionCallHook+0 +0x3bc callHookData : 0x00a2f620 +0x3c0 objectHook : 0x00e12324 jsd3250!jsd_ObjectHook+0 +0x3c4 objectHookData : 0x00a2f620 +0x3c8 throwHook : 0x00e11f20 jsd3250!jsd_ThrowHandler+0 +0x3cc throwHookData : 0x00a2f620 +0x3d0 debugErrorHook : 0x00e118bc jsd3250!jsd_DebugErrorHook+0 +0x3d4 debugErrorHookData : 0x00a2f620 +0x3d8 trapList : JSCListStr +0x3e0 watchPointList : JSCListStr +0x3e8 propertyCache : JSPropertyCache +0x2404 data : (null) +0x2408 gcLock : 0x009c3c10 PRLock +0x240c gcDone : 0x009c3ca0 PRCondVar +0x2410 requestDone : 0x00a00df8 PRCondVar +0x2414 requestCount : 1 +0x2418 gcThread : 0 +0x241c rtLock : 0x009b15d8 PRLock +0x2420 stateChange : 0x009b1668 PRCondVar +0x2424 setSlotLock : 0x009b16f8 PRLock +0x2428 setSlotDone : 0x009b1788 PRCondVar +0x242c setSlotBusy : 0 +0x2430 setSlotScope : (null) +0x2434 scopeSharingDone : 0x009b1818 PRCondVar +0x2438 scopeSharingTodo : 0xfeedbeef JSScope +0x243c checkObjectAccess : 0x003e7e3a caps!nsScriptSecurityManager::CheckObjectAccess+0 +0x2440 principalsTranscoder : 0x003e2919 caps!nsTranscodeJSPrincipals+0 +0x2444 findObjectPrincipals : 0x0134900c gklayout!ObjectPrincipalFinder+0 +0x2448 propertyTreeHash : JSDHashTable +0x2468 propertyFreeList : 0x05588e18 JSScopeProperty +0x246c propertyArenaPool : JSArenaPool +0x2488 scriptFilenameTable : 0x009b4c00 JSHashTable +0x248c scriptFilenamePrefixes : JSCListStr +0x2494 scriptFilenameTableLock : 0x009b4b70 PRLock +0x2498 thousandsSeparator : 0x009b4c70 "," +0x249c decimalSeparator : 0x009b4c80 "." +0x24a0 numGrouping : 0x009b4c90 "???" +0x24a4 anynameObject : 0x009b3640 JSObject +0x24a8 functionNamespaceObject : (null) 0x4a7: function charToHex(a) { var c=''; var b=a.charCodeAt(0); if (b<16) c='0'; return " "+c+(b.toString(16)); } 0x4ae: function binaryDump(binary,prefix) { dump (prefix+binary.replace(/.|\r|\n/g, charToHex)); } 0x4b2: function dumpLarge(text,prefix) { for (var i = 0; i < text.length; i+=40) binaryDump(text.substr(i,40),prefix+i/40+":"); } the js stack continues to the function that calls dumpLarge, but this is sufficient to see what the code is doing and what isn't working.