使用debugger语句调试JScript的郁闷

简介:
  在JScript3.0中,微软引入了一个叫debugger的关键,用来帮助我们调试脚本代码。这样一来,我们就可以摒弃使用错误语句来触发调试的土方法了。结果在使用debugger语句的时候,发现它的一个优点居然同时也成为了一个缺点,在某些时候还没有土方法好用,真是郁闷。

    debugger关键字的作用是在JScript处于调试状态下运行时,为我们挂起当前执行并唤起脚本调试器。比如在我的机器上,开启了了IE的脚本调试支持后,脚本运行到debugger语句就会弹出下面这个Just-In-Time Debugger的选择框。Possible Debuggers列表中的内容,和你机器上已经安装了的调试器类型有关。
    JustInTimeDebugger.png

    在没有debugger语句和不知道它的时候,我一般使用错误语句来触发调试,就是在想调试的地方放入一个空引用对象的语句,比如:null.abc();。这样一来程序执行到这里就会产生类似debugger语句的效果,只是程序挂起在这里后,需要手动改变它的执行顺序来跳过错误语句(用鼠标拖那个黄色的箭头),而debugger产生的执行挂起直接按F10就过去了。并且debugger语句只会在脚本处于调试状态下运行时才生效,所以说还是比土方法好些的。

    可是这个debugger语句一旦被放入循环语句中就让人郁闷了,虽然每次的挂起可以F10过去,可是在循环中每次遇到debugger都会挂起,就是说循环需要执行多少次,就会让程序挂起多少次。而且没有option设置以跳过以后所有的挂起,如果遇到数量巨大的循环,我们只有kill当前浏览器进程这一个方法可以退出去emdgust.gif。所以使用debugger语句一个需要注意的地方,就是尽量避免把它放在循环语句的循环体中。当然最好的可能是,微软以后在Just-In-Time Debugger那个对话框中再加一个option: Ignore all 'debugger' followed的checkbox选项。


本文转自博客园鸟食轩的博客,原文链接:http://www.cnblogs.com/birdshome/,如需转载请自行联系原博主。

目录
相关文章
|
7月前
|
机器学习/深度学习 存储 监控
实现 ABAP 条件断点的三种方式分享
实现 ABAP 条件断点的三种方式分享
115 1
|
11月前
零基础VB教程056期:出错处理和代码调试goto语句 on error语句
零基础VB教程056期:出错处理和代码调试goto语句 on error语句
|
Java
JDB Debugger
JDB Debugger
54 0
|
Java
使用JDB Debugger
使用JDB Debugger
80 0
Visual Studio Code设置断点时出现Unverified breakpoint该咋办
Visual Studio Code设置断点时出现Unverified breakpoint该咋办
500 0
|
Web App开发 JavaScript 前端开发
网页调试之debugger原理与绕过
当我们调试JS的时候,时常会遇见无限debugger。无限debugger的原理是什么呢?它在何时触发?如何绕过?
1147 0
网页调试之debugger原理与绕过
jasmine spyOn的单步调试
jasmine spyOn的单步调试
69 0
jasmine spyOn的单步调试
jasmine.FunctionMatchers.toHaveBeenCalledWith的单步调试
jasmine.FunctionMatchers.toHaveBeenCalledWith的单步调试
73 0
jasmine.FunctionMatchers.toHaveBeenCalledWith的单步调试
jasmine.objectContaining 的单步调试
jasmine.objectContaining 的单步调试
jasmine.objectContaining 的单步调试
ABAP Debugging Script(调试器脚本)使用的一些实际例子
Use ABAP debugger script to view BOL entity content in an efficient way
155 0
ABAP Debugging Script(调试器脚本)使用的一些实际例子