eclipse断点调试指导

合集下载

Eclipse中Debug调试及视图

Eclipse中Debug调试及视图

Eclipse 调试器和Debug 视图编者注:Pawel Leszek 最初于 2003 年 5 月撰写了下文,后来由 Chris Aniszczyk 于 2007 年 4 月进行了更新。

Eclipse SDK 是针对 Java™开发工具(Java™ Development Tools,JDT)的项目,它具有一个内置的 Java 调试器,可以提供所有标准的调试功能,包括分步执行、设置断点和值、检查变量和值、挂起和恢复线程的功能。

除此之外,还可以调试远程机器上运行的应用程序。

Eclipse 平台很健壮,因为其他编程语言可以将该平台提供的调试工具用于各自的语言运行时。

正如下文所示,同一个Eclipse Debug 视图也可以用于 C/C++ 编程语言。

Eclipse 平台工作台及其工具是围绕 JDT 组件构建的,该组件为 Eclipse 提供了下列特性:∙项目管理工具∙透视图和视图∙构造器、编辑器、搜索和构建功能∙调试器Eclipse 调试器本身是 Eclipse 内的一个标准插件集。

Eclipse 还有一个特殊的 Debug 视图,用于在工作台中管理程序的调试或运行。

它可以显示每个调试目标中挂起线程的堆栈框架。

程序中的每个线程都显示为树中的一个节点,Debug 视图显示了每个运行目标的进程。

如果某个线程处于挂起状态,其堆栈框架显示为子元素。

在使用 Eclipse 调试器之前,假定您已经安装了合适的 Java SDK/JRE(我推荐使用 Java VM V1.4)和 Eclipse Platform SDK V3.3,而且两者的运行都没问题。

一般来说,先用 Eclipse 示例测试一下调试选项比较好。

如果想开发和调试 C/C++ 项目,还需要获得并安装 C/C++ 开发工具(C/C++ Development Tools,CDT)。

关于 Java SDK/JRE、Eclipse 平台和示例以及 CDT,请参阅参考资源。

调试技巧(断点调试的各种技巧,让你调试程序更得心应手)

调试技巧(断点调试的各种技巧,让你调试程序更得心应手)

调试技巧(断点调试的各种技巧,让你调试程序更得⼼应⼿)断点的源由:INT 是Intel系列CPU的⼀个指令,可以让程序产⽣⼀个中断或者异常。

程序中如果有中断或者异常发⽣了以后,CPU会中断程序的执⾏,去⼀个叫做IDT的部件查找处理这个中断(或者异常)的例程(Handler)。

IDT是操作系统在启动的时候初始化的,⾄于IDT的细节问题,例如什么是IDT,怎样编写⼀个IDT的例程,怎样初始化IDT,可以去⽹上搜索⼀些资料。

总之,这⾥我们只要知道,CPU在执⾏程序指令过程中,碰到INT 3中断程序的执⾏,CPU然后去IDT表⾥⾯找到处理断点的例程⼊⼝。

这个例程要做的事情就是:1. 先看看机器⾥⾯是不是安装了⼀个调试器—记住,这⼀步很重要,之所以重要以后的⽂章⾥⾯会介绍。

2. 如果机器⾥⾯没有安装调试器,那么操作系统就会终⽌程序的执⾏。

3. 否则操作系统启动调试器,并将调试器附到进程上。

4. 这样,我们才能在调试器⾥⾯检查程序内部变量的值。

INT 3 (或者DebugBreak(),或者Debugger.Break())指令是我们⾃⼰在代码⾥⾯硬编码进去的,因此我们在Visual Studio⾥,在相应的代码⾏⾥⾯点⼀下,出现⼀个⼩红球,也就是说Visual Studio在程序指令集某个地⽅动态地添加了⼀个INT 3指令。

现在的问题来了,Visual Studio是如何在程序中正确找到插⼊INT 3指令的位置的?或者更具体⼀些,我们在源代码(⽂本⽂件)⾥⾯设置断点的,Visual Studio需要把代码⾏翻译成在程序指令集中的位置。

Visual Studio之所以需要做翻译,是因为通常⼀⾏C++或者 C#代码都会对应好⼏⾏汇编指令。

因此,Visual Studio需要⼀个额外的⽂件来执⾏这个翻译过程,这个额外的⽂件叫做调试符号⽂件(Symbols),是由编译器⽣成的。

Visual Studio系列的编译器,不论是C#、还是C++编译器都会⽣成这个调试符号⽂件,.pdb ⽂件。

Eclipse 添加断点

Eclipse  添加断点

Eclipse 添加断点调试器的功能之一,可以让程序中断在需要的地方,从而方便其分析。

也可以在一次调试中设置断点,下一次只需让程序自动运行到设置断点位置,便可在上次设置断点的位置中断下来,极大的方便了操作,同时节省了时间。

1.添加断点在Eclipse中,用户可以非常方便的向程序代码中,添加一些断点。

例如,将光标置于需要添加断点的行,并执行【运行】|【切换断点】命令,如图2-53所示。

此时,将在该行之前添加一个小球图标,如图2-54所示。

图2-53 执行【切换断点】命令图2-53 所添加断点另外,用户可以在工具栏后面的快捷方式工具栏中,单击【调试】透视图按钮,并在窗口中显示【调试】、【变量】和【断点】视图,如图2-54所示。

图2-54 打开【调试】等多个视图在【断点】视图中,显示两项内容,其中“ErrorTest[行:6]=main(String[])”为刚才所添加的断点。

2.添加行断点在【编辑器】视图的编辑区中,将光标置于可疑代码的行中,并双击该行左侧的标记栏,即可添加断点。

也可以选择要添加断点的行,并右击标记栏,执行【切换断点】命令即可,如图2-55所示。

当然,新添加的断点会同时出现在断点视图中。

3.去除行断点去除断点与添加断点的操作都非常容易,最简单的方法即直接双击断点左方标题栏的断点标记即可。

或者,右击标记栏中的断点标记,并执行【切换断点】即可除去断点,如图2-56所示。

图2-55 添加断点 图2-56 去除断点我们知道,在编辑区中所添加的断点,都会在【断点】视图中添加一条断点信息。

因此,用户也可以直接在【断点】视图中,选择需要去除的断点,并单击该视图工具栏中的【除去选择的断点】按钮,如图2-57所示。

在该视图中,也可以直接单击【除去所有断点】按钮。

图2-57 去除断点4.启用和禁用断点在多个断点进行调试程序时,可以通过启用及禁用某些断点,来观察程序运行的状态及结果。

例如,右击标记栏中的断点标记,并执行【禁用断点】命令,如图2-58所示。

Eclipse的Debug调试技巧

Eclipse的Debug调试技巧

Eclipse的Debug调试技巧作为开发⼈员,掌握开发环境下的调试技巧⼗分有必要。

我们在编写java程序的过程中,经常会遇到各种莫名其妙的问题,为了检测程序是哪⾥出现问题,经常需要增加⽇志,看变量的值,这样调试很⿇烦。

假设我每天花费1⼩时在调试我的应⽤程序上的话,那累积起来的话也是很⼤量的时间。

由于这个原因,⽤这些时间来重视并了解所有使我们调试更⽅便的功能。

那能为你省下⼀些时间,也将会使你的⽣活更安逸、轻松。

⾸先我们需要注意三个点:不要使⽤System.out.println作为调试⼯具\使⽤⼀个⽇志分析器来阅读⽇志\启⽤所有组件的详细的⽇志记录级别⼀个关于调试的疯狂声明作为开头。

但它必须是要说的!尝试切分⼀下你那复杂的逻辑成多个独⽴的单元,并编写单元测试来检测你代码的正确性。

我想像如下这样的流程应该是发⽣得⾮常频繁的—-⼀些Debug模式的界⾯,共分为5个区域(1)Debug(调试)区域,显⽰当前正在调试代码是什么,在第多少⾏(2)Variables(变量)区域,显⽰变量的值。

(3)代码编辑区(4)代码结构区,显⽰代码中的各个⽅法。

(5)Console(控制台)区域。

⼀、条件断点我们通常调试断点的时候⼀般就是点击⾏号的左边,这个时候就会有断点被打起来。

在debug视图中,BreakPoint View将所有断点都列出来,但是我们可以添加⼀个boolean类型的条件来决定断点是否被跳过。

如果条件为真,在断点处程序将停⽌,否则断点被跳过,程序继续执⾏。

如果你只对应⽤中的某部分感兴趣的话,这个功能⾮常有⽤。

例如,如果你要在第13次循环的时候检查程序,或者在⼀个抽象⽗类中调试某些功能,⽽你只关注其中⼀个具体的实现。

你可以在断点视图中设置条件,或者通过代码旁边的蓝⾊断点标记的右键菜单(”Breakpoint Properties”)设置。

你可以在条件代码⽚段为true的时候暂停程序,或者当代码⽚段的值改变的时候挂起程序。

在Eclipse中使用debug(Eclipse调试常用技巧)

在Eclipse中使用debug(Eclipse调试常用技巧)

Eclipse调试常用技巧1、条件断点断点大家都比较熟悉,在Eclipse Java编辑区的行头双击就会得到一个断点,代码会运行到此处时停止。

条件断点,顾名思义就是一个有一定条件的断点,只有满足了用户设置的条件,代码才会在运行到断点处时停止。

在断点处点击鼠标右键,选择最后一个"Breakpoint Properties"断点的属性界面及各个选项的意思如下图,2、变量断点断点不仅能打在语句上,变量也可以接受断点,上图就是一个变量的打的断点,在变量的值初始化,或是变量值改变时可以停止,当然变量断点上也是可以加条件的,和上面的介绍的条件断点的设置是一样的。

3、方法断点方法断点就是将断点打在方法的入口处,方法断点的特别之处在于它可以打在JDK的源码里,由于JDK在编译时去掉了调试信息,所以普通断点是不能打到里面的,但是方法断点却可以,可以通过这种方法查看方法的调用栈。

4、改变变量值代码停在了断点处,但是传过来的值不正确,如何修改一下变量值保证代码继续走正确的流程,或是说有一个异常分支老是进不去,能不能调试时改一下条件,看一下异常分支代码是否正确?在Debug视图的Variables小窗口中,我们可以看到mDestJarName变量的值为"F:\Study\eclipsepro\JarDir\jarHelp.jar"我们可以在变量上右键,选择"Change Value..."在弹出的对话框中修改变量的值,或是在下面的值查看窗口中修改,保用Ctr+S保存后,变量值就会变成修改后的新值了。

5、重新调试这种调试的回退不是万能的,只能在当前线程的栈帧中回退,也就说最多只能退回到当前线程的调用的开始处。

回退时,请在需要回退的线程方法上点右键,选择"Drop to Frame"6、远程调试用于调试不在本机上的程序,有两种方式,1、本机作为客户端2、本机作为服务端使用远程调试的前提是服务器端和客户端的代码是一致的。

断点调试的基本方法

断点调试的基本方法

断点调试的基本方法断点调试是一种常用的程序调试技术,它可以帮助开发人员定位和解决程序中的错误和问题。

通过在代码中设置断点,我们可以让程序在指定位置暂停执行,以便我们可以逐行查看代码的执行情况、变量的值以及程序流程。

本文将介绍断点调试的基本方法,包括设置断点、运行程序、调试控制等方面。

1. 设置断点在开始进行断点调试之前,我们首先需要在代码中设置断点。

通常情况下,我们会选择在可能出现问题或者感兴趣的位置设置断点。

在一个循环中,我们可以选择在每次循环迭代时设置断点,以便查看每次迭代时变量的值。

在大多数集成开发环境(IDE)中,设置断点非常简单。

只需要在代码行号处点击鼠标左键或者使用快捷键(通常是F9),就可以在该位置设置一个断点。

一旦成功设置了一个断点,该行代码前面会出现一个小圆圈标记。

2. 运行程序当我们完成了断点的设置之后,就可以开始运行程序进行调试了。

通常情况下,我们会选择以调试模式启动程序,这样可以让程序遇到断点时暂停执行,以便我们进行调试。

在大多数IDE中,可以通过点击菜单栏上的“调试”或者“Debug”按钮来启动程序的调试模式。

启动调试模式后,程序会按照正常的方式运行,直到遇到第一个断点。

一旦程序遇到断点,它会暂停执行,并且我们可以查看当前代码行的状态和变量的值。

3. 调试控制一旦程序进入了调试模式并且遇到了断点,我们就可以利用调试工具来查看和控制程序的执行。

下面是一些常用的调试控制方法:•单步执行(Step over):这个功能可以让我们一次执行一行代码,并且不进入函数或方法内部。

如果当前行是一个函数或方法的调用,那么该函数或方法会被整体执行完毕,并且返回结果。

•单步进入(Step into):这个功能可以让我们进入函数或方法内部,并且逐行执行其中的代码。

如果当前行是一个函数或方法的调用,那么会跳转到该函数或方法内部的第一行。

•单步返回(Step out):这个功能可以让我们从当前函数或方法内部跳出,并返回到它的调用位置。

Android 开发之Eclipse Debug调试详解

Android 开发之Eclipse Debug调试详解

Android 开发之Eclipse Debug调试详解1.在程序中添加一个断点如果所示:在Eclipse中添加了一个程序断点在Eclipse中一共有三种添加断点的方法第一种:在红框区域右键出现菜单后点击第一项 Toggle Breakpoint 将会在你右键代码的哪一行添加一个程序断点(同样的操作方可取消程序断点)第二种:在红框区域双击鼠标左键将会在你双击代码的哪一行添加一个程序断点(同样的操作方可取消程序断点)第三种:在光标停留的地方使用快捷键 Ctrl + Shift + B 将会在光标停留的这一行添加一个程序断点(同样的操作方可取消程序断点)2.运行Debug 调试让程序停留在添加的断点上如下图所示,在红框内点击下拉菜单选中需要调试的项目则开始运行Debug调试如果不在下拉表中选直接点击表示Debug运行默认项目(默认项目为上一次运行的项目)Debug调试快捷键为单击F11分析一下如何科学的添加程序断点,上图中我为了加断点查看生成出来随机数的值我一共添加了6个程序断点,绿框表示最为科学的断点位置,红框表示不科学的位置。

我们分析一下为什么,如果switch case 中的代码片段过长或者 case 的数量过多如果采用红框的方式来添加程序断点,程序员须要添加很多程序断点万一有疏漏所以会很难快速定位代码执行到了那里,如果使用绿框的方式添加程序断点,程序员只须要在断点出按 F6 单步跳过这一行代码就会走进正确的case中方便继续调试。

Debug调试运行后,程序停在了红框处,按F6单步跳过发现随机数为4 程序停留在了绿框中,程序员可以迅速定位random的值为43.程序停留后查看变量的数值蓝框中的内容表示为断点的入口方法,就好比你的断点是从那个方法进来的,学会看这个真的非常重要,好比我现在明确知道我的一个方法在被调用的时候方法中会出现错误,但是这个方法在程序中100个地方都在调用,我可能断定实在那里调用的时候出的错误,我不可能在100个调用它的地方都加一个断点,我可以在方法中添加程序断点然后在篮框中查看程序是从那个地方走进这个方法的,便可以快速定位问题所在。

在Eclipse中进行调试

在Eclipse中进行调试

4.4 在Eclipse中进行调试(1)4.4 在Eclipse中进行调试Eclipse为调试运行中的Java应用程序提供了完善的环境。

当在主机模式下运行GWT应用程序时,Eclipse会将它作为一个Java应用程序来运行,而且开发者可以在Eclipse中调试这个GWT应用程序。

对于Ajax开发过程来说,能够调试基于浏览器的Web应用程序的确是一种巨大的进步。

本章前面,我们看到使用applicationCreator脚本和-eclipse选项来创建应用程序时,会自动地创建一个Eclipse启动配置文件。

然后,通过Eclipse就能在主机模式下用Run或Debug命令来启动该应用程序。

启动以后,主机模式浏览器仍然与Eclipse保持连通,并且能够使用Eclipse的调试命令。

首先,我们从断点讲起。

断点是指在代码中设置的一个位置,当执行到该位置时,应用程序会中断运行并将控制权转交给调试器。

这样,我们就能够观察变量的状态或者逐行地执行代码以便于分析程序流。

为了示范断点的应用,可以在HelloWorld应用程序中按钮的ClickListener.onClick方法的第一个行添加一个断点。

设置方法是在编辑器中该行的左侧边空区域单击右键,选择Toggle Breakpoint,如图4-24所示。

这时,我们能够在左侧边空区域上看到由一个蓝色圆点图标表示的断点。

而通过在该边空区域上双击同一个点可以切换断点。

现在,当调试应用程序时,Eclipse会在程序执行到断点时接管调节器。

对于HelloWorld这个例子而言,就是在单击按钮的时候程序会发生中断。

下面,单击工具栏上的Bug图标,打开Debug菜单,从中选择HelloWorld,如图4-25所示。

当在主机模式浏览器中打开HelloWorld时,单击Click Me按钮,就能够看到Eclipse显示的调试器。

此时,应该看到Eclipse处于Debug透视图模式,如图4-26所示。

java断点调试设置条件表达式

java断点调试设置条件表达式

java断点调试设置条件表达式
在Java的调试过程中,可以设置条件表达式来进一步控制断点的触发。

条件表达式可以是任意的Java语句或表达式,只有当条件表达式的值为true时,才会触发断点。

在使用Eclipse进行Java调试时,可以按下述步骤设置断点的条件表达式:
1. 在代码上右键单击,并选择“Toggle Breakpoint”来设置断点,或者使用快捷键Ctrl+Shift+B。

2. 右键单击断点,选择“Breakpoint Properties”。

如果你之前没有设置断点,可以通过"Debug" > "Toggle Breakpoint" 进行设置。

3. 在断点属性对话框的“Condition”选项卡中,输入你想要作为条件的表达式。

例如,可以输入一个变量的值、一个比较表达式、一个方法的返回值等。

4. 确认设置后,点击“OK”按钮来保存设置。

接下来,当程序执行到断点时,将会首先计算条件表达式的值。

只有当条件表达式的值为true时,才会中断程序的执行。

需要注意的是,条件表达式仅在断点位置被触发时进行计算,而不是全局的计算。

因此,如果表达式中使用了局部变量或方法参数等,需要确保这些变量在断点位置可见。

此外,其他的Java调试工具也提供了类似的设置条件表达式的功能,只需按照相应的工具和版本进行设置即可。

eclipse 【调试】视图

eclipse  【调试】视图

eclipse 【调试】视图
【调试】视图是一个显示程序调试信息的窗口,也是程序代码调试比较重要一个视图。

上述所描述的调试相关内容,都是在为调试程序代码而做准备。

若要对程序代码进行调试,可以直接单击工具栏中的【调试】按钮即可。

此时,在【调试】视图中,显示的是正在调试的进程,以及整个调试的历史记录。

而且,在程序代码过程中,将与【编辑器】视图中的断点结合显示,如图2-67所示。

图2-67 【调试】视图
从上图中,我们可以观察到,在程序代码中添加了3个断点,如在mian( )类中添加一个方法断点、在第6行和第9行都添加有行断点。

当调试程序时,将运行main( )类断点后,就会将线程暂挂,这样有利于检测的代码是否正确,如图2-68所示。

图2-68 执行第1个断点 图2-69 继续执行调试 然后,单击【调试】视图工具栏中的【继续】按钮或者按F8键即可继续执
行代码。

在调试过程中,将在标记栏中显示一个移动调试箭头,每当移动到下一个断点,则箭头将指向该断点行,并该行代码自动添加“浅绿色”的背景色,如图2-69所示。

Eclipse 断点调试快捷键

Eclipse 断点调试快捷键

Eclipse 断点调试快捷键1、Ctrl+M --切换窗口的大小2、Ctrl+Q --跳到最后一次的编辑处3、F2 --当鼠标放在一个标记处出现Tooltip时候按F2则把鼠标移开时Tooltip还会显示即Show Tooltip Description。

F3 --跳到声明或定义的地方。

F5 --单步调试进入函数内部。

F6 --单步调试不进入函数内部,如果装了金山词霸2006则要把“取词开关”的快捷键改成其他的。

F7 --由函数内部返回到调用处。

F8 --一直执行到下一个断点。

4、Ctrl+Pg~ --对于XML文件是切换代码和图示窗口5、Ctrl+Alt+I --看Java文件中变量的相关信息6、Ctrl+PgUp --对于代码窗口是打开“Show List”下拉框,在此下拉框里显示有最近曾打开的文件7、Ctrl+/ --在代码窗口中是这种//~注释。

Ctrl+Shift+/ --在代码窗口中是这种/*~*/注释,在JSP文件窗口中是〈!--~--〉。

8、Alt+Shift+O(或点击工具栏中的Toggle Mark Occurrences按钮) 当点击某个标记时可使本页面中其他地方的此标记黄色凸显,并且窗口的右边框会出现白色的方块,点击此方块会跳到此标记处。

9、右击窗口的左边框即加断点的地方选Show Line Numbers可以加行号。

10、Ctrl+I格式化激活的元素Format Active Elements。

Ctrl+Shift+F格式化文件Format Document。

11、Ctrl+S保存当前文件。

Ctrl+Shift+S保存所有未保存的文件。

12、Ctrl+Shift+M(先把光标放在需导入包的类名上) 作用是加Import语句。

Ctrl+Shift+O作用是缺少的Import语句被加入,多余的Import语句被删除。

13、Ctrl+Space提示键入内容即Content Assist,此时要将输入法中Chinese(Simplified)IME-Ime/Nonlme Toggle的快捷键(用于切换英文和其他文字)改成其他的。

断点管理办法

断点管理办法

断点管理办法1. 概述断点管理是软件开发过程中的重要环节,它指的是在调试程序时,我们可以在特定位置设置断点,使得程序执行到断点处时停下来,以便我们进行调试。

断点管理办法是一种规范和方法论,旨在提高断点管理的效率和准确性。

本文将介绍一些常见的断点管理办法和技巧,帮助开发人员更好地利用断点进行调试。

2. 常见断点类型在软件开发过程中,常见的断点类型包括2.1 行断点行断点是设置在代码的特定行上,当程序执行到该行时停下来。

行断点是最常用的断点类型,可以帮助开发人员跟踪代码的执行情况。

2.2 条件断点条件断点允许开发人员设置一个条件,当条件满足时,程序会在断点处停下来。

条件断点能够帮助开发人员定位特定条件下的问题,提高调试的效率。

2.3 异常断点异常断点是在代码中设置的特殊断点,用于捕获和处理程序中的异常。

当异常断点被触发时,程序会停下来,并提供异常的详细信息,帮助开发人员定位和修复异常。

2.4 捕获点捕获点是一种特殊类型的断点,它用于在特定的代码片段中跟踪变量的值。

当程序执行到捕获点时,会记录下指定变量的当前值和状态,方便开发人员进行调试和分析。

3. 断点管理办法和技巧在进行断点管理时,有一些办法和技巧可以帮助开发人员提高效率和准确性3.1 合理设置断点在开发过程中,应该根据具体的调试需求和代码结构合理设置断点。

不宜过多地设置断点,以免影响程序执行的性能。

3.2 使用条件断点条件断点可以根据特定的条件来触发断点,帮助开发人员快速定位问题。

在调试复杂的逻辑时,使用条件断点可以大大提高调试效率。

3.3 组合使用断点类型在调试过程中,可以根据需要组合使用不同类型的断点。

例如,在排查异常问题时,可以先设置异常断点,然后根据异常出现的条件设置条件断点,进一步定位问题。

3.4 使用捕获点捕获点可以方便地跟踪变量的值,帮助开发人员查看代码执行过程中的变量状态。

在需要详细分析变量值变化的情况下,可以使用捕获点进行调试。

断点调试

断点调试
快捷键:
alt+\:内容提示
ctrl+1:快速修复
ctrl+shift+快速导包
ctrl+shift+f:格式化代码
alt+方向(返回)键配合ctrl键(查看源代码):查看源代码
f2:查看方法说明
ctrl+shift+x:变成大写 +y:变小写
ctrl+alt+向下键:复制行
断点:
f5:step into(跳入)
f6:step over(跳到下一行)
f7:step return(跳回)
drop to frame:跳到当前方法的第一行
resume:跳到下一个断点(如果没有,结束运行)
注意:
1,断点调试完成后,要在breakpoints视图中清除所有的断点
2,段调试完成后,一定要记得结束运行断点的jvm
alt+向上键/向下键:将某行换位置
ctrl+t:查看继承关系
ctrl+shift+t:查看源代码
ctrl+shift+L:查看所有的快捷键

设置断点的技巧

设置断点的技巧

设置断点的技巧
设置断点是调试程序的常用技巧之一,可以帮助开发人员在程序运行时暂停执行并检查变量的值、程序流程等信息。

以下是一些设置断点的技巧:
1. 选择合适的位置:通常,在代码中选择有问题的或需要深入了解的位置设置断点。

可以选择在循环、条件语句、函数调用等代码块的开头处设置断点,以便在程序执行到这些位置时暂停。

2. 设置多个断点:如果程序包含多个可疑的区域,可以设置多个断点以逐个调试。

这样可以逐步分析程序执行的过程,并逐渐缩小问题的范围。

3. 使用条件断点:条件断点是在满足特定条件时才触发断点。

在设置断点时,可以指定一个条件表达式,例如“i>10”或“x==5”,以便只在满足条件时才暂停程序。

这可以帮助我们更准确地找到问题所在。

4. 动态设置断点:某些调试工具允许在程序执行过程中动态设置断点。

这样,当程序运行到特定位置时,可以手动设置断点,而无需事先在代码中设置。

这对于调试需要交互操作的程序特别有用。

5. 跳过断点:在某些情况下,我们可能不希望每次都停在某个特定的断点处。

在调试工具中,可以设置“跳过”选项来忽略特定的断点,从而加快调试的速度。

6. 使用条件断点或监视器:在调试工具中,除了设置断点外,还可以设置条件断点或监视器来监控变量的值。

通过监视变量的值,可以更轻松地找到问题的根源。

总之,设置断点是调试程序时的重要技巧之一,在调试过程中,根据问题的情况和调试工具的功能灵活运用断点设置技巧,可以快速定位和解决问题。

在Tomcat和Eclipse进行远程调试的配置

在Tomcat和Eclipse进行远程调试的配置

在做远程调试时,在windows系统和非windows系统下的配置,Tomcat中会有所差别,具体如下:第一步、配置tomcat一、在windows系统中:打开%CATALINE_HOME%/bin下的文件catalina.bat,加入下面这行:set CATALINA_OPTS=-server -Xdebug -Xnoagent piler=NONE-Xrunjdwp:transport=dt_socket,server=y,su spend=n,address=8787。

其中address=8787是没被使用的端口号。

连接方式有两种,为dt_shmem和dt_socket,分别表示本机调试和远程调试。

二、在非windows系统中:还需要把% CATALINE_HOME %/bin/startup.sh中的最后一行exec "$PRGDIR"/"$EXECUTABLE" start "$@" 中的start改成jpda start。

由于默认的端口是8000,所以如果8000端口已有他用的话,还需在catalina.sh文件中设置:JPDA_ADDRESS=8787。

输入命令startup.sh或者catalina.sh jpda start就可启动tomcat。

第二步、配置eclipse在Eclipse中选择RunàDebug,在弹出的对话框中右击Remote Java Application新建一个远程调试项,如下如所示:在“Name”输入框中输入远程调试的名称,在“Project”中选择要调试的项目,在“Host”中输入需要远程调试项目的IP,也就是tomcat所在的IP,在“Port”中输入设置的端口号,比如上面设置的8787,然后钩选“Allow termination of remote VM”,点击“Apply”即可。

eclipse debug实现原理

eclipse debug实现原理

eclipse debug实现原理Eclipse Debug实现原理1. 简介在软件开发过程中,调试是一个非常重要的环节。

而Eclipse作为一款强大的集成开发环境(IDE),提供了丰富的调试工具和功能,其中最重要的就是Debug功能。

那么,Eclipse Debug是如何实现的呢?本文将从浅入深,逐步解释相关原理。

2. 基本概念在开始深入解释Eclipse Debug实现原理之前,有必要先了解一些基本概念。

•断点(Breakpoint):在源代码中设置的指定位置,用于暂停程序的执行,以便开发者能够检查程序的状态。

•线程(Thread):程序中执行的独立单元,每个线程都有自己的代码执行路径。

•栈帧(Stack Frame):每个线程在执行过程中都有一个栈帧,用于存储方法的局部变量、中间结果等信息。

•调试器(Debugger):负责控制调试过程的工具,能够让开发者逐行调试程序,查看变量的值和执行流程。

•调试目标(Debug Target):即需要调试的程序或进程。

3. Debug实现流程下面将按照步骤,逐步介绍Eclipse Debug的实现流程。

设置断点首先,开发者需要在源代码的特定位置设置断点,以便在程序执行到该位置时暂停。

启动Debug开发者在Eclipse中选择需要调试的程序,并通过菜单或快捷键启动Debug。

Eclipse会启动调试的目标,并与之建立调试会话。

断点触发当调试目标执行到设置的断点位置时,调试目标会通知Eclipse,告知断点已被触发。

暂停程序Eclipse接收到断点触发的通知后,会暂停调试目标的执行。

这是通过和调试目标的通信实现的。

更新界面当程序被暂停后,Eclipse会更新Debug视图,显示当前暂停的位置以及程序的状态信息。

开发者可以查看和修改变量的值,并查看执行栈中的栈帧。

在程序暂停的状态下,开发者可以选择单步执行的方式,逐行调试程序。

单步执行会使程序从当前位置执行到下一行,或者进入函数调用等。

断点调试的技巧

断点调试的技巧

断点调试的技巧断点调试是一种调试方法,通过在代码中打上断点,以便在程序执行到断点位置时停下来,可以逐行查看代码的执行情况,从而帮助我们定位和解决程序中的问题。

以下是一些断点调试的技巧:1. 设置断点:在代码的某一行上单击左侧的行号,即可设置一个断点。

可以设置多个断点来进行连续的调试。

2. 条件断点:可以为断点设置条件,只有满足条件时才会触发断点。

条件可以是表达式、变量的值或函数的返回值。

3. 临时断点:在调试过程中,可以将断点设置为临时断点。

当程序执行到该断点时,会触发一次断点,之后该断点会被自动删除。

4. 条件断点的跳过:可以为条件断点设置跳过选项,当断点条件不满足时,自动跳过断点。

5. 禁用/启用断点:可以在调试过程中动态地禁用或启用某个断点,以便控制程序的执行流程。

6. 采用多个线程调试:对于多线程程序,可以在不同的线程上设置断点,并进行并行断点调试。

7. 调试时修改变量的值:在断点处,可以修改变量的值,以便测试不同的情况。

8. 监视表达式:可以在调试过程中跟踪表达式的值,在断点处设置监视表达式,以便快速了解变量的值。

9. 单步执行:可以在断点处逐行执行代码,观察每行代码的执行结果,以便更好地理解代码的执行过程。

10. 调用栈追踪:在断点处可以查看调用栈信息,以了解程序的执行路径和调用关系。

11. 条件断点的日志输出:可以在条件断点处输出日志,在满足条件时输出一些调试信息,有助于查看特定条件下的程序状态。

12. 异常断点:可以设置异常断点来捕获代码中的异常情况,以便更好地理解异常的发生原因。

以上是一些常用的断点调试技巧,通过这些技巧可以更加高效地定位和解决程序中的问题。

用Eclipse调试Python

用Eclipse调试Python

用Eclipse调试Python描述单步调试对程序开发有非常多的好处,能够帮助我们开发人员检测代码,分析数据,查找原因。

下面介绍一下在Eclipse IDE中调试Python代码的方法。

步骤1、配置Eclipse1.1、Run -> Debug Configurations1.2、右键Python Run -> New1.3、配置新实例1.3.1、选择Main标签,设置参数设置Name为:fw;选择Project为:fw工程;选择Main Module为:manage.py最终结果如下图所示:1.3.2、选择Arugment标签,设置参数在Program arguments里面设置值为runserver --noreload,如下图所示:2、修改TEMPLATE_DIRS值为绝对路径在我们工程中将PAGES_PATH、RESOURCES_PATH修改为本地磁盘绝对路径即可,如:PAGES_PATH = 'D:/neteye/npfm/app_media/Pages'RESOURCES_PATH = 'D:/neteye/npfm/app_media/Resources'3、启动调试模式点击Debug->New_configuration4、添加断点双击代码左边的侧边栏,即可添加断点,如下图所示:5、浏览页面进入断点处通过浏览器浏览设置了断点的对应页面,等到编译器运行到断点处代码后就会停止。

断点处截图:监视面板截图:6、其他技巧6.1 常用快捷键6.2 设置断点条件右键断点-> breakpoint property添加条件总结在Eclipse中调试Python和调试Java等几乎是类似的,除了上面讲到的一些技巧外,还有很多多地方需要大家自己揣摩。

断点调试原理

断点调试原理

断点调试原理断点调试是软件开发过程中常用的一种调试方法。

它是通过在程序代码中设置断点,使程序在运行到断点处时暂停执行,以便开发人员能够逐行查看程序的运行状态、变量的值以及执行路径,从而找出程序中的错误和问题。

本文将介绍断点调试的原理和常用的调试技巧。

一、断点调试的原理断点调试的原理是在程序代码中设置断点,当程序执行到断点处时,会暂停执行,开发人员可以通过调试工具查看程序的状态和变量的值。

断点调试的原理可以简要概括为以下几个步骤:1. 代码编译:首先,开发人员需要将程序代码编译成可执行文件。

编译过程将源代码转换为机器语言,生成可执行文件。

2. 断点设置:在程序代码中选择需要设置断点的位置。

通常,开发人员会选择一些关键的代码行或者有问题的代码行作为断点。

3. 程序运行:执行可执行文件,将程序加载到内存中,开始运行。

当程序执行到设置的断点位置时,会触发断点中断。

4. 调试状态:程序在断点处中断后,开发人员可以通过调试工具查看程序的状态和变量的值。

调试工具提供了调试界面,显示程序的执行路径、变量的值以及运行状态等信息。

5. 调试操作:开发人员可以通过调试工具进行各种调试操作,如单步执行、查看变量值、修改变量值等。

通过逐行查看程序的执行过程,可以找出错误和问题所在。

6. 继续执行:在完成调试操作后,开发人员可以选择继续执行程序,直到下一个断点位置或程序结束。

二、断点调试的技巧1. 设置合适的断点:在进行断点调试时,应该选择一些关键的代码行或者有问题的代码行作为断点。

这样可以快速定位问题所在,并减少调试的时间和精力。

2. 利用条件断点:调试工具通常支持设置条件断点。

通过设置条件,可以在满足某个条件时触发断点。

这对于调试特定的场景或者特定的数据有很大帮助。

3. 单步调试:在调试过程中,可以使用单步调试功能逐行执行程序。

这样可以精确定位问题所在,并查看每一步的执行结果。

4. 查看变量值:在断点处暂停时,可以查看变量的值。

Eclipse的单步调试

Eclipse的单步调试

Eclipse的单步调试1、设置断点在程序⾥⾯放置⼀个断点,也就是双击需要放置断点的程序左边的栏⽬上。

2、调试(1)点击"打开透视图"按钮,选择调试透视图,则打开调试透视图界⾯,然后先设置断点,按调试按钮则可以调试程序。

(2)或者直接点击调试按钮,那个⾍⼦样⼦的按钮,然后就会进⼊调试透视图的界⾯。

前提你需要是要在程序中设置好断点。

(3)或者右键单击该程序,选择debug as(调试⽅式) -> java application(Java应⽤程序),则可以调试程序了。

前提你需要是要在程序中设置好断点。

3、调试快捷键以debug⽅式运⾏java程序后(F5)单步执⾏程序,遇到⽅法时进⼊;(F6)单步执⾏程序,遇到⽅法时跳过;(F7)单步执⾏程序,从当前⽅法跳出;(F8)直接执⾏程序。

遇到断点时暂停;按F5就是⼀层层深⼊的debug相当于剥葱样,会进⼊每个⽅法内部;按F6就是在当前函数⼀步步debug,不理会深层次运作;按F7就是如果当前进⼊了某个⽅法内部,都跳转到该⽅法的结尾代码处;按F8就是如果后⾯还有断点,则运⾏到下⼀断点处,否则运⾏完程序;另,在debug时,会有很多有⽤信息显⽰在debug框⾥,如堆栈信息,需要⾃⼰实践;在程序界⾯⾥,⿏标移到变量上时会有当前变量的属性值。

4、改变变量的值在变量窗⼝中右击变量,在弹出的菜单中选择[change value],弹出修改画⾯。

改变其值后,按下ok按钮;这时变量的值就改为修改后的值了。

5、检查代码段执⾏结果在程序运⾏的时候,想看看某段程序运⾏的结果是否正确,或者查看某个变量的值时:选择⼀句或⼀段代码,右键单击在弹出的菜单中选择Watch(创建查看表达式)项,此时,代码的执⾏结果将显⽰在Expressions(表达式)窗⼝中。

选择⼀句或⼀段代码,右键单击在弹出的菜单中选择Inspect(检查)项,可以直接显⽰表达式的值。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.进入debug模式(基础知识列表)1、设置断点2、启动servers端的debug模式3、运行程序,在后台遇到断点时,进入debug调试状态=============================作用域功能快捷键全局单步返回F7全局单步跳过F6全局单步跳入F5全局单步跳入选择Ctrl+F5全局调试上次启动F11全局继续F8全局使用过滤器单步执行Shift+F5全局添加/去除断点Ctrl+Shift+B全局显示Ctrl+D全局运行上次启动Ctrl+F11全局运行至行Ctrl+R全局执行Ctrl+U=============================1.Step Into (also F5) 跳入2.Step Over (also F6) 跳过3.Step Return (also F7) 执行完当前method,然后return跳出此method4.step Filter 逐步过滤一直执行直到遇到未经过滤的位置或断点(设置Filter:window-preferences-java-Debug-step Filtering)5.resume 重新开始执行debug,一直运行直到遇到breakpoint。

例如:A和B两个断点,debug过程中发现A断点已经无用,去除A 断点,运行resume就会跳过A直接到达B断点。

6.hit count 设置执行次数适合程序中的for循环(设置breakpoint view-右键hit count)7.inspect 检查运算。

执行一个表达式显示执行值8.watch 实时地监视对象、方法或变量的变化9.我们常说的断点(breakpoints)是指line breakpoints,除了line breakpoints,还有其他的断点类型:field(watchpoint)breakpoint,method breakpoint ,exception breakpoint.10.field breakpoint 也叫watchpoint(监视点) 当成员变量被读取或修改时暂挂11.添加method breakpoint 进入/离开此方法时暂挂(Run-method breakpoint)12.添加Exception breakpoint 捕抓到Execption时暂挂(待续...)断点属性:1.hit count 执行多少次数后暂挂用于循环2.enable condition 遇到符合你输入条件(为ture\改变时)就暂挂3.suspend thread 多线程时暂挂此线程4.suspend VM 暂挂虚拟机13.variables 视图里的变量可以改变变量值,在variables 视图选择变量点击右键--change value.一次来进行快速调试。

14.debug 过程中修改了某些code后--〉save&build-->resume-->重新暂挂于断点15.resume 当debug调试跑出异常时,运行resume,重新从断点开始调试16.如果一行有很多方法,当第一次按F5键就跳入这一行第一个方法,F6一步一步调试,F7跳出这方法.当第二次按F5键就跳入这一行第二个方法,F6一步一步调试,F7跳出这方法.以此类推.想进入这一行第几个方法,就按几次F5和F7.2.基础知识篇(包含部分实践)Eclipse 调试器本身是Eclipse 内的一个标准插件集。

Eclipse 还有一个特殊的Debug 视图,用于在工作台中管理程序的调试或运行。

它可以显示每个调试目标中挂起线程的堆栈框架。

程序中的每个线程都显示为树中的一个节点,Debug 视图显示了每个运行目标的进程。

如果某个线程处于挂起状态,其堆栈框架显示为子元素。

在使用Eclipse 调试器之前,假定您已经安装了合适的Java SDK/JRE(我推荐使用Java VM V1.4)和Eclipse Platform SDK V3.3,而且两者的运行都没问题。

一般来说,先用Eclipse 示例测试一下调试选项比较好。

如果想开发和调试C/C++ 项目,还需要获得并安装C/C++ 开发工具(C/C++ Development Tools,CDT)。

关于Java SDK/JRE、Eclipse 平台和示例以及CDT,请参阅参考资源。

图 1 显示了Debug 透视图的一般视图。

图1. Eclipse Debug 透视图的一般视图调试Java 语言程序在可以调试项目前,需要干净地编译和运行代码。

首先,需要为应用程序创建一个运行配置,确保应用程序可以正确启动。

然后,需要通过Run > Debug菜单以类似的方式设置调试配置。

还需要选择一个类,将它作为调试的主Java 类来使用(请参见图2)。

您可以按照自己的意愿为单个项目设置多个调试配置。

当调试器启动时(从Run > Debug),会在一个新的窗口中打开,这时就可以开始调试了。

图2. 在调试配置中设置项目的主Java 类接下来,将讨论Eclipse 中的一些常用调试实践。

设置断点在启动应用程序进行调试时,Eclipse 会自动切换到Debug 透视图。

毫无疑问,最常见的调试步骤是设置断点,这样可以检查条件语句或循环内的变量和值。

要在Java 透视图的Package Explorer 视图中设置断点,双击选择的源代码文件,在一个编辑器中打开它。

遍历代码,将鼠标放在可疑代码一行的标记栏(在编辑器区域的左侧)上,双击即可设置断点。

图3. 编辑器左侧看到的两个断点现在,从Run > Debug菜单启动调试会话。

最好不要将多条语句放在一行上,因为会无法单步执行,也不能为同一行上的多条语句设置行断点。

图4. 视图中左侧空白处的箭头指示当前正在执行的行还有一个方便的断点视图来管理所有的断点。

图5. 断点视图条件断点一旦了解到错误发生的位置,您可能想要知道在程序崩溃之前,程序在做什么。

一种方法就是单步执行程序的每行语句。

一次执行一行,直到运行到可疑的那行代码。

有时,最好只运行一段代码,在可疑代码处停止运行,在这个位置检查数据。

还可以声明条件断点,它在表达式值发生变化时触发(请参见图6)。

除此之外,在输入条件表达式时,也可以使用代码帮助。

图6. 设置条件断点触发器计算表达式的值为了在Debug 透视图的编辑器中计算表达式的值,选择设置了断点的那行代码,在上下文菜单中,通过Ctrl+Shift+I或右键单击您感兴趣的变量(参见图7)选择Inspect 选项。

在当前堆栈框架的上下文中会计算表达式的值,在Display 窗口的Expressions 视图中会显示结果。

图7. 通过Inspect 选项计算表达式的值剪切活动代码Display 视图允许您以剪切类型的方式处理活动代码(参见图8)。

要处理一个变量,在Display 视图中输入变量名即可,视图会提示您一个熟悉的内容助手。

图8. Display 视图当调试器停止在一个断点处时,您可以从Debug 视图工具栏(参见图9)中选择Step Over 选项,继续调试器会话。

该操作会越过高亮显示的那行代码,继续执行同一方法中的下一行代码(或者继续执行调用当前方法的那个方法的下一行代码)。

执行上一步后发生改变的变量会用某种颜色高亮显示(默认是黄色)。

颜色可以在调试首选项页面中改变。

图9. 改变颜色的变量要在Debug 视图中挂起执行线程,选择一个运行线程,单击Debug 视图工具栏中的Suspend。

该线程的当前调用堆栈就会显示出来,当前执行的代码行就会在Debug 透视图中的编辑器中高亮显示。

挂起一个线程时,将鼠标放在Java 编辑器中的变量上,该变量的值就会在一个小的悬停窗口中显示出来。

此时,该线程的顶部堆栈框架也会自动选中,其中的可视变量也会在Variables 视图中显示出来。

您可以通过单击Variables 视图中合适的变量名来检查变量。

热交换错误修正:动态代码修正如果运行的是Java 虚拟机(Java Virtual Machine,JVM)V1.4 或更高的版本,Eclipse 支持一个叫做热交换错误修正(Hotswap Bug Fixing)的功能,JVM V1.3 或更低的版本不支持该功能。

该功能允许在调试器会话中改变源代码,这比退出应用程序、更改代码、重新编译、然后启动另一个调试会话更好。

要利用该功能,在编辑器中更改代码后重新调试即可。

由于JVM V1.4 与Java 平台调试器架构(Java Platform Debugger Architecture,JPDA)兼容,所以才有可能具备该功能。

JPDA 实现了在运行的应用程序中替换经过修改的代码的功能。

如果应用程序启动时间较长或执行到程序失败的地方时间很长,那么这一点特别有用。

如果在完成调试时,程序还没有全部执行一遍,在Debug 视图的上下文菜单中选择Terminate 选项。

容易犯的一个错误是在调试器会话中使用Debug 或Run,而不是Resume。

这样做会启动另一个调试器会话,而不是继续当前会话。

3.DEBUG调试方式(方法汇总篇)1、条件断点断点处点击鼠标右键- 选择"Breakpoint Properties"勾选"Enabled" 启动断点勾选"Hit Count" 输入框写运行次数勾选"Enable Condition" 输入框写停止条件2、变量断点变量也可以接受断点,在变量的值初始化,或是变量值改变时可以停止可以加条件,和上面条件断点的设置是一样的3、方法断点方法断点的特别之处在于它可以打在JDK的源码里由于JDK 在编译时去掉了调试信息,所以普通断点是不能打到里面的但是方法断点却可以,可以通过这种方法查看方法的调用栈4、改变变量值在Debug 视图的Variables 小窗口中,可以在变量上右键,选择"Change Value..." 在弹出的对话框中修改变量的值或是在下面的值查看窗口中修改,Ctr+S 保存5、重新调试这种调试的回退不是万能的,最多只能退回到当前线程的调用的开始处回退时,请在需要回退的线程方法上点右键,选择"Drop to Frame"6、远程调试用于调试不在本机上的程序连接时远程服务器时,需要在Eclipse中新建一个远程调试程序7、异常断点要找到异常发生的地方比较困难,还好可以打一个异常断点Breakpoints工具框顶右第四使用"增加Exception异常断点"当异常发生时,代码会停在异常发生处,定位问题时应该比较有帮助4.各种断点设置方法(实践篇)大家肯定都用过Eclipse的调试的功能,在调试的过程中自然也无法避免要使用断点(breakpoint),但不知是否对Eclipse中各类断点都有所了解。

相关文档
最新文档