欢迎来到天天文库
浏览记录
ID:1525927
大小:1.30 MB
页数:15页
时间:2017-11-12
《使用eclipse以及jdb调试java程序》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、应用程序调试技术(Java部分)第一讲使用Eclipse以及JDB调试Java程序主讲人:施懿民华章培训网、[www.hztraining.com]华章培训网版权所有讲解了调试的原理,使用Eclipse调试器的一些技巧,以及使用jdb调试Java程序的方法。概述第2页断点的实现原理断点(BreakPoint)可以说是调试器的关键技术,需要软件和硬件的协作才能实现。一般断点的实现方式有下面几种:通过特定的指令通知中央处理器(CPU)来中断程序的执行。通过设置特定的寄存器来通知中央处理器中断程序的执行。通过强制处理器触发异常来中断程序执行并将控制权转交给调试器。
2、在Intel兼容的处理器架构上,一般调试器是通过在进程中特定的位置插入INT3指令来实现断点的。调试器提供的单步执行,单步跳过执行以及跳出函数等功能,都是断点的变种。第3页演示1、在C程序中嵌入断点。第4页特殊断点除了简单的每次执行到断点位置中断程序执行这一种方式,调试器一般都提供了如下几种断点:条件断点–可以指定触发断点的条件,避免每次重复触发断点降低调试工作效率。监视断点–可以在访问数据的时候,中断程序的执行。函数断点–可以在执行函数前或者退出函数前中断程序的执行。异常断点–当程序发生指定异常的时候,中断程序的执行,第一时间发现问题所在。类型断点–当程序
3、试图加载某个类型的时候,中断程序的执行。第5页演示1、禁用所有的断点。2、设置条件断点。3、监视断点。4、异常断点。5、函数断点。6、在类型加载的时候中断第6页演示–Eclipse其他调试技巧1、在堆栈的任意位置重新执行语句。2、在程序启动时进行调试。3、使用变量窗口的逻辑视图。4、单步过滤调试。5、计算表达式。第7页远程调试架构Java平台调试器架构第8页组件调试器接口/
4、--------------
5、/
6、VM
7、被调程序-----(
8、--------------
9、<----JVMTI–Java虚拟机工具接口
10、后台
11、
12、--------------
13、/
14、通
15、信渠道--(
16、<------------JDWP–Java调试传输协议
17、/
18、--------------
19、/
20、前台
21、调试器-----(
22、--------------
23、<----JDI–Java调试接口
24、UI
25、
26、--------------
27、远程调试原理通过客户机-服务器架构,可以在本地调试Java程序,也可以通过网络进行远程调试,JPDA规范中的两个术语:连接器和传输。连接器是一个JDI抽象,用来在调试器应用程序和目标VM之间建立连接。传输定义应用程序如何进行访问,以及数据如何在前端和后端之间传输。连接器“映射”到可用的传输类型和连接模式。在Sun的J
28、PDA参考实现中,为Microsoft®Windows®提供了两个传输机制:套接字传输和共享内存传输。可用的连接器:连接套接字连接器连接共享内存连接器监听套接字连接器监听共享内存连接器启动命令行连接器第9页远程调试命令参数-Xdebug:启用调试特性。-Xrunjdwp::在目标VM中加载JDWP实现。它通过传输和JDWP协议与独立的调试器应用程序通信。下面介绍一些特定的子选项。从JavaV5开始,您可以使用-agentlib:jdwp选项,而不是-Xdebug和-Xrunjdwp。但如果连接到V5以前的VM,只能选择-Xdebug
29、和-Xrunjdwp。-Xrunjdwp子选项。transport:这里通常使用套接字传输。但是在Windows平台上也可以使用共享内存传输。Server:如果值为y,目标应用程序监听将要连接的调试器应用程序。否则,它将连接到特定地址上的调试器应用程序。address:这是连接的传输地址。如果服务器为n,将尝试连接到该地址上的调试器应用程序。否则,将在这个端口监听连接。suspend:如果值为y,目标VM将暂停,直到调试器应用程序进行连接。第10页演示–设置远程调试1、被调试程序当作调试服务器。-Xdebug-Xrunjdwp:transport=dt_so
30、cket,server=y,address=87652、被调程序当作调试客户端。-Xdebug-Xrunjdwp:transport=dt_socket,address=127.0.0.1:8000第11页演示1、使用jdb调试java程序。第12页在Emacs里运行JDB由于直接使用JDB调试时,浏览源代码时很不方便,如果机器上安装了emacs,可以直接在emacs里启动JDB,获取跟eclipse相近的源代码级别的调试体验。在emacs里运行JDB的方法:在emacs里按下ALT+X键,在提示符后面输入JDB,敲击回车。接着再输入JDB的启动参数。按下C
31、TRL+X,2键,将emacs分屏。再按CTRL+X
此文档下载收益归作者所有