Chrome 开发工具之Sources

摘要:
Sources面板主要用于查看网站的资源列表和javascript代码的调试熟悉面板。了解面板后,让我们尝试如何使用这些功能。断点方法:1.在脚本中编写debugger2。2.在“源”面板文件中标记断点。现在范围对象是本地对象和全局对象,这指向obj。有关详细信息,请参阅“Chrome开发工具元素”中的介绍。

Sources面板主要用于查看web站点的资源列表及javascript代码的debug

熟悉面板
Chrome 开发工具之Sources第1张

了解完面板之后,下面来试试这些功能都是如何使用的。

文件列表

展示当前页面内所引用资源的列表,和平常的文件tree一样。

内容区域

可在该区域查看打开的文件的脚本,也可以在区域内下断点,打断指定执行代码行。

断点方式:

1.在脚本中写入debugger

2.在Sources面板文件内标注断点。

debugger:

var num = 1;
console.log(num);
debugger;

效果图:
Chrome 开发工具之Sources第2张

标注断点:

在下断点的代码行前点击左键/或者点击右键选择"Add breakpoint"。

效果图:

Chrome 开发工具之Sources第3张

在下断点的代码行前右击可操作断点状态,也可使用"Edit breakpoint"控制断点条件。

Chrome 开发工具之Sources第4张

如上图,仅当满足 num = 5 时触发断点。

在执行到断点的时候,脚本不会继续向下执行,而这时,将鼠标放到想查看的变量名上,即可显示该变量信息。

按钮组介绍

Chrome 开发工具之Sources第5张

continue:继续执行代码,直到遇到另一个断点。

Chrome 开发工具之Sources第6张

step_over:按正常步骤,应该会一行一行的执行相关代码,以便深入探索哪些代码影响着正在更新的变量。如果你的代码中调用了另一个函数,点击此按钮将不会进入该函数,而是直接略过,将焦点留在当前函数上。

Chrome 开发工具之Sources第7张

step_into:进入被调用的函数并且调试器将将其执行到该函数定义中的第一行。

Chrome 开发工具之Sources第8张

step_out:在已进入一个函数后,单击此按钮将导致函数定义的其余部分的运行,调试器将将其执行到父函数。

Chrome 开发工具之Sources第9张

disable-breakpoints:控制断点开/关的按钮。

Chrome 开发工具之Sources第10张

pause-gray:在异常处产生断点。
Chrome 开发工具之Sources第11张

此处elem是错误的,应该为ele,所以触发了异常断点。

变量监听

对加入监听列表的变量进行监听,在该面板的右侧有添加变量和刷新变量列表的按钮。

Chrome 开发工具之Sources第12张

在断点1,2,3时所监听到的值分别是undefined,0,1。

函数调用堆栈

函数调用堆栈显示了一条完整的导致代码被暂停的执行路径,让我们深入了解导致错误的原因。

Chrome 开发工具之Sources第13张

上图在fnC下断点,该面板显示fnC函数的执行路径,分别是从fnA调用fnB,fnB再调用fnA,并且函数调用堆栈列表中还有每一步调用分别在哪个文件和在文件的第几行。

作用域

当前断点所在函数执行的作用域内容。

Chrome 开发工具之Sources第14张

当前作用域里的对象是本地参数_obj和Global,this指向window,之后我们执行下一步,去下一个断点看看。

Chrome 开发工具之Sources第15张

现在作用域对象是本地对象和Global,this指向obj。

断点列表

展示断点列表,将每个断点所在文件/行数/改行简略内容展示。
Chrome 开发工具之Sources第16张

DOM断点列表

给DOM加断点,在达到规定条件时触发断点,截断javascript的执行并且定位到断点处。详情可参考"Chrome 开发工具之Elements"中的介绍。

请求断点列表

对达到满足过滤条件的请求进行断点拦截,点击该面板右侧加号按钮,会跳出"Break when URL contains"以填写过滤条件。

Chrome 开发工具之Sources第17张

当满足url拦截条件时,便会在该请求执行发送处进入断点。下面换个不满足条件的url测试。

Chrome 开发工具之Sources第18张

和预料中的一样,并没进入断点。

可断点的事件监听列表

打开这个列表,可以在监听事件并且在触发该事件时进入断点,调试器会停留在触发事件代码行。只需要展开事件列表,选择要监听的事件打上勾即可。
Chrome 开发工具之Sources第19张

代码格式

当文件是压缩文件的时候,代码往往是一行的,点击该按钮即可显示规范的代码格式。

代码位置

显示当前焦点在几行几列。

Async 获取异步函数的函数调用堆栈

该按钮处于未选中状态时,当异步函数执行的时候debugger,函数调用堆栈中显示的是"anonymous function"及信息,处于选中状态时,异步函数中的debugger将会在函数调用堆栈中显示当前异步函数是在哪个函数中被调用的。

未勾选Async

Chrome 开发工具之Sources第20张

勾选Async

Chrome 开发工具之Sources第21张

细心的朋友看到这应该发现,Event Listeners(测了下这块内容,好像跟Elements面板的Event Listeners对应不上)的介绍是没写的。这部分google了好多资料,感觉都不是想要的答案,包括在chrome官网的dev tools介绍里也只是略过,没找到案例,于是暂未下定论。希望有会的朋友给出补充~ 当然,本兽也在寻找答案中...

免责声明:文章转载自《Chrome 开发工具之Sources》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇把页面的Table直接输出到Excel文件中Relector反编译经验技巧整理下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

shell脚本调试之工具——bashdb

bash是Unix/Linux操作系统最常用的shell之一,它非常灵活,和awk、c++配合起来异常强大 以下使用一个测试脚本来说明使用bash调试的方法 test.sh [plain]view plaincopy #!/bin/bash      echo "----------------begin-----------------"    ...

Netty源码剖析-断开连接

参考文献:极客时间傅健老师的《Netty源码剖析与实战》Talk is cheap.show me the code! ----主线: ----源码:     在NioEventLoop的unsafe.read()打断点  在客户端关闭的地方也加个断点,并且修改点代码:  然后启动server和client;就会发现代码停在关闭的地方: 当下一步的...

JVM 常用命令

对于有图形化界面的用户来,jconsole就可以搞定,界面使用很简单 还可以查看很多信息,例如检测死锁。 下面是没有图形化界面的系统 可以用命令 : jps 查看jvm 进程 jstack -l 6088 查看 jvm 启动参数的命令 root@VM-185-251-ubuntu:/home/ubuntu#jinfo -flags 17809 返回值如下...

《转》Visual Studio 2015的安装与基本使用(社区版)

https://www.cnblogs.com/wangzexi/p/4906640.html 为什么要使用Visual Studio 2015? 它是中文的、界面友好、自动补全、实时语法错误提示(上图中波浪线部分)、单步调试……最重要的社区版是免费的!所以你不必再使用破解的、老旧的的不兼容现代系统的VC++6.0,Come to VS2015 and...

Eclipse+php插件+Xdebug搭建PHP完美开发/调试环境指南

 最近要开始使用Zend框架开发中型应用系统了,由于采用完全面向对象的框架思路开发程序,不光开发思想,先前的Editplus+Dreamweaver编辑器组合显然不能满足我的要求了。我的新环境初步定为Eclipse+PDT插件+Xdebug+apache(Unix平台最流行的WEB服务器平台)。   先前一直对dotNET、Java的IDE的代码自动嗅探、...

C#调试器导航

本快速入门演示如何在 Visual Studio 调试会话中导航,以及如何在会话中查看和更改程序状态。 本 快速入门适用于不熟悉用 Visual Studio 进行调试的开发人员,以及要详细了解在 Visual Studio 调试会话中导航的开发人员。但其中不传授调试本身的技艺。示例代码中的方法仅为演示本主题中所述的调试过程。这些方法并未采用应用程序或函...