Firefox - Disable 'debugger' keywords
Solution 1
In the current version of Firefox at writing this answer (ver 63.0.3), in the Developer Tools, the Debugger section, there's an icon with the tooltip "Skip all pausing" or "Deactivate breakpoints". When enabled it seems to disable stopping at any debugger
instruction.
Solution 2
Obviously the page tries to avoid people from debugging their JavaScript code with that construct.
Debugging in Firebug
Firebug allows to set disabled breakpoints on the debugger
statements. Because the page generates a variable call stack depth, you'll need to set those disabled breakpoints for all of them to be able to debug the JavaScript properly. Unfortunately, Firebug seems to be buggy when it comes to set those breakpoints.
Furthermore, Firebug doesn't have an option to ignore all debugger
statements.
So, if you don't need to debug JavaScript but only HTML, CSS, network requests, etc., you can simply disable the Script panel to avoid these annoying debugger halts. To do so, right-click the Script tab and click on Enable within the opening menu.
Note: Because Firebug development is discontinued, it's useless to file an enhancement request for it.
Debugging in Firefox DevTools
Unfortunately, the Firefox DevTools currently don't allow to avoid halting on debugger
statements. So you have to wait until bug 1300934 (which mentions the same website as an example), bug 925269 and/or issue 828 are fixed.
Furthermore there is no way to disable the Debugger panel completely, which is filed as bug 1247198.
Solution 3
if you use Greasemonkey you can rewrite setTimeout/setInterval
function to disable the script
unsafeWindow.setTimeout = function () {};
Solution 4
Chrome
in chrome you can edit the breakpoint and put a condition that is always false, it won't hit the debugger anymore
another option is to use "never pause here"
Firefox
for firefox, you can blackbox the script that you don't want to be hit by the breakpoint. for me it causes to hang the firefox. but when you restart the browser. then it's okay,
Related videos on Youtube
Comments
-
user201202 over 1 year
How do I tell Firefox not to stop if it sees a
debugger
keyword?I need to avoid a continuous
debugger
loop in case the website uses debugging protection generatingdebugger
statements on the fly using timers.Here is an example. In case you open the debugging console the script will throw tons of debugger statements, which will block you from normal debugging work.
An example website is http://www.avito.ru - the biggest classified site in Russia. Open it and then open the debugger console and it will be immediately stop at the
debugger
keyword in generated script.(function(x/**/) { (function(f){ (function a(){ try { function b(i) { if( (''+(i/i)).length !== 1 || i % 20 === 0 ) { (function(){}).constructor('debugger')(); } else { debugger; } b(++i); } b(0); } catch(e) { f.setTimeout(a, x) } })() })(document.body.appendChild(document.createElement('frame')).contentWindow); });
-
Sebastian Zartner over 7 yearsAs you didn't mention which tool you're using, I've added the 'firebug' and 'firefox-developer-tools' flags.
-
Sebastian Zartner over 7 yearsFor reference, the same question was asked in the Firebug discussion group, providing the website www.avito.ru as example.
-
user201202 over 7 yearsSebastian, that was me seeking for help in there as well :)
-
Sebastian Zartner over 7 yearsI thought so :-), though in your question here you didn't include the website as example, so I thought I'll mention it in a comment. You may still adjust your question to include the link.
-
-
T.J. Crowder over 7 yearsFirebug is, of course, open source (as is Firefox). So it may be possible to modify it to add the desired feature and send a pull request.
-
Sebastian Zartner over 7 yearsCorrect, though as noted, Firebug is discontinued and stops working once multi-process Firefox is enabled. Also the Firefox DevTools are open source, so it might be better to provide a patch for them instead.
-
T.J. Crowder over 7 yearsSorry, I meant "modify either of them" rather than specifically Firebug.
-
user201202 over 7 yearsSo basically there is only one option - try to implement this feature for firefox dev tools and get it approved ...
-
Sebastian Zartner over 7 yearsCorrect. As the main work on the debugger seems to be on GitHub now, issue 828 seems the right place to do that.
-
Tobia over 5 yearsThis is why modern interfaces suck. In the old days, that would have been a menu item in a "Debug" top level menu.
-
Yeti almost 5 yearsThis did not work for me, debugger still halts on
debugger
. -
Ben Philipp over 2 yearsThis, of course, will prevent all timeout timers in the page window scope from working
-
TheSola10 about 2 years> there is no way to disable the Debugger panel completely Wouldn't
devtools.debugger.enabled=false
do the trick inabout:config
? -
Sebastian Zartner about 2 yearsThis preference suggests that you can disable the Debugger, though from my tests it doesn't have any effect. The Debugger panel is still there and works the same with this preference enabled or disabled. And this observation is confirmed by looking at the code, which shows that the preference is never read within the debugger code.