From c57ffa72d614309881ac851a17c8c020195d5ac3 Mon Sep 17 00:00:00 2001 From: Panos Astithas Date: Fri, 8 Jun 2012 10:00:48 +0300 Subject: [PATCH] Bug 761223 - JS Debugger errors prevent me from debugging Orion; r=dcamp --- browser/devtools/debugger/debugger-controller.js | 2 +- toolkit/devtools/debugger/dbg-client.jsm | 4 +++- .../devtools/debugger/server/dbg-script-actors.js | 12 +++++++++--- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/browser/devtools/debugger/debugger-controller.js b/browser/devtools/debugger/debugger-controller.js index eda2e1e5e3bb..2798776fa506 100644 --- a/browser/devtools/debugger/debugger-controller.js +++ b/browser/devtools/debugger/debugger-controller.js @@ -882,7 +882,7 @@ SourceScripts.prototype = { this._addScript({ url: aPacket.url, startLine: aPacket.startLine }, true); // If there are any stored breakpoints for this script, display them again. - for (let bp of DebuggerController.Breakpoints.store) { + for each (let bp in DebuggerController.Breakpoints.store) { if (bp.location.url == aPacket.url) { DebuggerController.Breakpoints.displayBreakpoint(bp.location); } diff --git a/toolkit/devtools/debugger/dbg-client.jsm b/toolkit/devtools/debugger/dbg-client.jsm index 144331cd8c39..dd8648707036 100644 --- a/toolkit/devtools/debugger/dbg-client.jsm +++ b/toolkit/devtools/debugger/dbg-client.jsm @@ -149,7 +149,9 @@ function eventSource(aProto) { listener.apply(null, arguments); } catch (e) { // Prevent a bad listener from interfering with the others. - Cu.reportError(e); + let msg = e + ": " + e.stack; + Cu.reportError(msg); + dumpn(msg); } } } diff --git a/toolkit/devtools/debugger/server/dbg-script-actors.js b/toolkit/devtools/debugger/server/dbg-script-actors.js index 3791cc20aff3..088bc6330832 100644 --- a/toolkit/devtools/debugger/server/dbg-script-actors.js +++ b/toolkit/devtools/debugger/server/dbg-script-actors.js @@ -170,8 +170,10 @@ ThreadActor.prototype = { this.conn.send(packet); return this._nest(); } catch(e) { - Cu.reportError("Got an exception during TA__pauseAndRespond: " + e + - ": " + e.stack); + let msg = "Got an exception during TA__pauseAndRespond: " + e + + ": " + e.stack; + Cu.reportError(msg); + dumpn(msg); return undefined; } }, @@ -1540,11 +1542,15 @@ EnvironmentActor.prototype = { // TODO: this part should be removed in favor of the commented-out part // below when getVariableDescriptor lands. let desc = { - value: this.obj.getVariable(name), configurable: false, writable: true, enumerable: true }; + // Avoid "Debugger scope is not live" errors for |arguments|, introduced + // in bug 746601. + if (this.obj.callee.live) { + desc.value = this.obj.getVariable(name); + } //let desc = this.obj.getVariableDescriptor(name); let descForm = { enumerable: true,