array(2) { ["docs"]=> array(10) { [0]=> array(10) { ["id"]=> string(3) "428" ["text"]=> string(77) "Visual Studio 2017 单独启动MSDN帮助(Microsoft Help Viewer)的方法" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(8) "DonetRen" ["tagsname"]=> string(55) "Visual Studio 2017|MSDN帮助|C#程序|.NET|Help Viewer" ["tagsid"]=> string(23) "[401,402,403,"300",404]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400964" ["_id"]=> string(3) "428" } [1]=> array(10) { ["id"]=> string(3) "427" ["text"]=> string(42) "npm -v;报错 cannot find module "wrapp"" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "zzty" ["tagsname"]=> string(50) "node.js|npm|cannot find module "wrapp“|node" ["tagsid"]=> string(19) "[398,"239",399,400]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400760" ["_id"]=> string(3) "427" } [2]=> array(10) { ["id"]=> string(3) "426" ["text"]=> string(54) "说说css中pt、px、em、rem都扮演了什么角色" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(12) "zhengqiaoyin" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400640" ["_id"]=> string(3) "426" } [3]=> array(10) { ["id"]=> string(3) "425" ["text"]=> string(83) "深入学习JS执行--创建执行上下文(变量对象,作用域链,this)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "Ry-yuan" ["tagsname"]=> string(33) "Javascript|Javascript执行过程" ["tagsid"]=> string(13) "["169","191"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511399901" ["_id"]=> string(3) "425" } [4]=> array(10) { ["id"]=> string(3) "424" ["text"]=> string(30) "C# 排序技术研究与对比" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "vveiliang" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(8) ".Net Dev" ["catesid"]=> string(5) "[199]" ["createtime"]=> string(10) "1511399150" ["_id"]=> string(3) "424" } [5]=> array(10) { ["id"]=> string(3) "423" ["text"]=> string(72) "【算法】小白的算法笔记:快速排序算法的编码和优化" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "penghuwan" ["tagsname"]=> string(6) "算法" ["tagsid"]=> string(7) "["344"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511398109" ["_id"]=> string(3) "423" } [6]=> array(10) { ["id"]=> string(3) "422" ["text"]=> string(64) "JavaScript数据可视化编程学习(二)Flotr2,雷达图" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "chengxs" ["tagsname"]=> string(28) "数据可视化|前端学习" ["tagsid"]=> string(9) "[396,397]" ["catesname"]=> string(18) "前端基本知识" ["catesid"]=> string(5) "[198]" ["createtime"]=> string(10) "1511397800" ["_id"]=> string(3) "422" } [7]=> array(10) { ["id"]=> string(3) "421" ["text"]=> string(36) "C#表达式目录树(Expression)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "wwym" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(4) ".NET" ["catesid"]=> string(7) "["119"]" ["createtime"]=> string(10) "1511397474" ["_id"]=> string(3) "421" } [8]=> array(10) { ["id"]=> string(3) "420" ["text"]=> string(47) "数据结构 队列_队列实例:事件处理" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "idreamo" ["tagsname"]=> string(40) "C语言|数据结构|队列|事件处理" ["tagsid"]=> string(23) "["246","247","248",395]" ["catesname"]=> string(12) "数据结构" ["catesid"]=> string(7) "["133"]" ["createtime"]=> string(10) "1511397279" ["_id"]=> string(3) "420" } [9]=> array(10) { ["id"]=> string(3) "419" ["text"]=> string(47) "久等了,博客园官方Android客户端发布" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(3) "cmt" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511396549" ["_id"]=> string(3) "419" } } ["count"]=> int(200) } 222 学习笔记02 - Eclipse断点调试(DeBug)使用技巧学习_初级 - 爱码网
     在进行Java开发或者学习时,不少人可能会使用Eclipse软件,当然开发过程中可能会遇到各种编译、运行出现错误的问题,这时我们就需要对代码进行Debug,检查到底哪里出了问题。因此,熟练掌握开发环境的Debug工具很有必要。本人在使用java时就很少使用Debug工具,现边记录边学习吧。
    对于Intellij的使用及调试,之后在了解,在此标记!

    工具:Eclipse    Version:Oxygen.2 Release(4.7.2)

    方法/步骤:
    (1)首先要设置断点:在代码需要调试的那一行,用鼠标双击代码行号的左边。注意:再次双击即可取消断点。例如:
学习笔记02 - Eclipse断点调试(DeBug)使用技巧学习_初级

   (2)启动服务开始调试:(有至少以下几种方法可用)
            方法1,例如在上图的代码中,鼠标点击main方法 --> 右键 --> Debug As --> Java Application,开始调试; 
学习笔记02 - Eclipse断点调试(DeBug)使用技巧学习_初级
            方法2,直接点击“调试”按钮,即点击小瓢虫边上的倒三角,选择 Debug As-->Java Application;或者选择列表中相应的类名点击进行调试;
学习笔记02 - Eclipse断点调试(DeBug)使用技巧学习_初级
            方法3,快捷键F11;

            方法4,菜单栏选择Run-->Debug;
学习笔记02 - Eclipse断点调试(DeBug)使用技巧学习_初级
            等等。
        注意:开发工具首次调试会弹出提示,需要切换到Debug工作区,勾选“Remember my decision”,下次便不再提示。

    (3)以debug方式运行java程序后,跳转到调试视图(例如下图)。
            其中最常用的窗口有:Debug窗口变量Variables窗口断点Breakpoints窗口代码编辑窗口输出Console窗口大纲outline窗口
学习笔记02 - Eclipse断点调试(DeBug)使用技巧学习_初级
            Debug窗口显示当前线程方法调用栈,及方法执行到第几行:
学习笔记02 - Eclipse断点调试(DeBug)使用技巧学习_初级
            Variables显示当前方法的局部变量,非静态的变量等,可以修改变量值:
学习笔记02 - Eclipse断点调试(DeBug)使用技巧学习_初级
            Breakpoints可用来新增和删除断点等:
学习笔记02 - Eclipse断点调试(DeBug)使用技巧学习_初级
            Console控制台用于查看打印的日志信息:
学习笔记02 - Eclipse断点调试(DeBug)使用技巧学习_初级
    (4)重点来了,Debug视图作用:可以用来调试运行程序,下图是常用的debug按钮,还有相应的快捷键。
学习笔记02 - Eclipse断点调试(DeBug)使用技巧学习_初级
按钮符号解释:
    <1> Skip All Breakpoints,忽略所有的断点,即运行代码时直接跳过设置的断点往后继续运行。再次点击该按钮,则不会忽略设置的断点;快捷键(Ctrl+Alt+B);
    <2> resume,表示当前继续执行代码,直到遇到下一个断点;快捷键F8;
    <3> Suspend,暂停;
    <4> Terminate,表示停止调试;快捷键Ctrl+F2)
    <5> Disconnect,
    <6> Step Into,表示进入当前方法内部,一步一步执行,快捷键(F5);
    <7> Step Over,表示运行下一行代码,执行当前行,但不进入执行细节,快捷键(F6);
    <8> Step Return,表示退出当前方法,返回到调用层,快捷键为(F7)。
调试过程中Debug视图有很多堆栈信息,另外调试中鼠标移到代码编辑窗口,放在变量上时会显示当前变量的值。

补充:
学习笔记02 - Eclipse断点调试(DeBug)使用技巧学习_初级
   <9> Drop to Frame,这个功能可以重新跳到当前方法的开始处重新执行,并且所有上下文变量的值也回到那个时候。不一定是当前方法,可以点击当前调用栈中的任何一个frame跳到那里(除了最开始的那个frame)。
        主要用途是所有变量状态快速恢复到方法开始时候的样子重新执行一遍,即可以一遍又一遍地在那个你关注的上下文中进行多次调试(结合改变变量值等其它功能),而不用重来一遍调试到那里了。当然,原来执行过程中产生的副作用是不可逆的(比如你往数据库中插入了一条记录)。
        这里也说了如何使用这个功能:http://www.javalobby.org/forums/thread.jspa?threadID=15271&tstart=0

    <10> Use Step Filters,快捷键(Shift+F5)。
        解释:大部分时间,在调试的时候,你希望查看自己的代码。而不是从其他库或JDK中的代码,甚至是你自己代码库中的框架部分的代码。 你可以配置Eclipse的Java调试器,通过配置“Step Filter”来使它不进入这些代码。 
① Windows -> Preferences -> Java -> Debug -> Step Filtering. 选择‘Use Step Filters’.  ② 或者使用按钮<10>.
        在屏幕上选中所需的选项。你可以添加你自己代码库中的部分代码。点击‘Apply’. 
        现在,下次你在orderList.add(newOrder)断点处按下F5时,你将不会进入ArrayList.add()方法。相反的是,调试器将把你带到合适的地方。这对你不想调试来查看JDK的bug是友好的。

    (5)跳过或清除断点
            下图所示的两个为Skip All Breakpoints设置的方式。
            在上面已经说过,其作用是将所有的断点设置为跳过,所以断点上会有一个斜线,表示断点被跳过,线程不会在该断点处被挂起。
            点击Run-->Remove All Breakpoints清除所有的断点或点击按钮<1>,在断点调试完可进行此操作。
学习笔记02 - Eclipse断点调试(DeBug)使用技巧学习_初级
    (6Debug调试完成后,需要切换回Java视图。下面介绍两种切换的方法:
                ① 通过IDE右上角的两个按钮进行切换,如下图所示;
学习笔记02 - Eclipse断点调试(DeBug)使用技巧学习_初级
               ② 点击菜单Window-->Perspective-->Open Perspective选择相应的视图
学习笔记02 - Eclipse断点调试(DeBug)使用技巧学习_初级
##
有更详细的介绍,比如:https://www.cnblogs.com/JavaBlackHole/p/7674963.html
等等... ...
#告一段落#


相关文章: