JDB调试之小试牛刀

用JDK自带工具JDB调试示例程序HelloJDB(d:\jdb\HelloJDB)

HelloJDB代码如下:
public class HelloJDB
{
	public static void main(String args[]){
		int a,b,c;
		a = 1;
		b = 2;
		c = a + b;
		System.out.println(c);
	}
}

编译HelloJDB:javac -g HelloJDB.java
注意:-g选项表示生成调试信息,否则使用locals命令不能查看本地变量

调试方式运行:java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 HelloJDB

JDB连接:jdb -connect com.sun.jdi.SocketAttach:hostname=localhost,port=8000 -sourcepath d:\jdb
注意:-sourcepath制定源代码,否则list指令不能显示断点所在源代码处

JDB调试:
stop at HelloJDB:7  在第七行处下断点
run 执行程序到断点处
locals 查看本地变量
list 查看断点所在源代码处
next 往下执行(step over)
step 往下执行(step into)
quit 停止调试
时间: 2024-10-04 02:58:57

JDB调试之小试牛刀的相关文章

jdb调试scala代码的简单介绍

在linux调试C/C++的代码需要通过gdb,调试java代码呢?那就需要用到jdb工具了.关于jdb的用法在网上大家都可以找到相应的文章,但是对scala进行调试的就比较少了.其实调试的大致流程都是一样的,只是需要注意一些细节的地方就可以了.下面就来简单说明一下.在这里关于scala和jdk的配置问题就不再详述了,下面进入正题吧. 首先放上调试用的scala代码hello.scala object hello { def main(args: Array[String]): Unit = {

百度加固后检测反jdb调试apk的小记录

百度加固后的apk检测反jdb调试apk的简单分析,就一个很简单的记录而已,方便以后查阅. 按照正常IDA调试,在开始用jdb来连接,出错了 毕竟是加壳的东西,所以反编译看一下,竟然找到了一点内容,如下: static { if(!Debug.isDebuggerConnected()) { String v0 = Build.CPU_ABI; if(v0 != null && (v0.startsWith("x86"))) { StubApplication.load

使用jdb调试apk

jdb是一个支持java代码级调试的工具,它是由java jdk提供的,存在于xxx\Java\jdk1.6.0_21\bin之下 使用ddms调试时,主机会打开另外一个网络端口,在DDMS里查看,一般是8700. 启动DDMS,这时程序前面应该有个红色小虫,点上面的开始调试按钮.这步不是必须的,这步的工作其实相当于手动敲: $ adb -d forward tcp:8700 jdwp:$PID 其中$PID为要调程序的进程号. 通过attach方式进行调试步骤: 显示所有可供调试的用户进程:

使用 JDB 调试 Android 应用程序

By Huang Tao of TinyLab.org 2015/04/13 前言 自从有了各种 IDE 工具,程序猿调试工作轻松了不少,只要在 IDE 上面点击两下按钮,各种程序运行时的信息全部都显示在屏幕上面,很美好的一件事情,我们都要感谢开发这些 IDE 工具的前辈,是他们让我们的工作变得这么"轻松简单",但是对于我个人来说,不是很喜欢这些 IDE 工具: 第一是因为这类 IDE 工具实在是变化太快,我们要花费很大的时间成本来学习这一类工具,然而当你好不容易熟悉了一种工具之后,别

使用 JDB 调试器

您可以使用调试 applet 或应用程序的 jdb 命令来调试 Servlet. 为了调试一个 Servlet,我们可以调试 sun.servlet.http.HttpServer,然后把它看成是 HttpServer 执行 Servlet 来响应浏览器端的 HTTP 请求.这与调试 applet 小程序非常相似.与调试 applet 不同的是,实际被调试的程序是 sun.applet.AppletViewer. 大多数调试器会自动隐藏如何调试 applet 的细节.同样的,对于 servlet

JDB调试代码 20165324 何春江

原文地址:https://www.cnblogs.com/20165324hcj/p/8575961.html

解决JAVA单步调试键盘输入被JDB占用的问题

解决JAVA单步调试键盘输入被JDB占用的问题 问题来源: 在完成本周任务时,编写的代码中含有Scanner类,编译及运行过程均正确,但使用JDB单步调试时,运行到输入行无法在JDB内部输入变量值. 解决方案 错误原因:JDB占用了控制台,导致无法在调试窗口进行输入输出操作. 解决步骤: 1.打开两个终端,一个用来远程监听,一个用来JDB单步调试. 2.在终端1输入以下命令进行监听远程控制: java -Xdebug -Xrunjdwp:transport=dt_socket,address=8

Eclipse替代ndk-gdb断点调试Android NDK程序

一 概述: Eclipse调试NDK程序的操作并不难,难的是环境的搭建.光是安装Eclipse就有不少问题,真是"大错不犯,小过不断"不胜期烦.在网上,已经有先行者记录下了Eclipse断点调试Android NDK程序的方法: <Eclipse + ADT(包括NDK Plugin) + CDT 搭建Android NDK开发环境>网址:http://blog.sina.com.cn/s/blog_48ed03c80101nhei.html 我遇到的情况与上文有些不同,上

Servlet的调试

以下内容引用自http://wiki.jikexueyuan.com/project/servlet/debugging.html: 测试/调试Servlet始终是困难的.Servlets往往涉及大量的客户端/服务器交互,可能会出现错误但是又难以重现. 这里有一些提示和建议,可以帮助调试. 一.System.out.println() System.out.println()作为一个标记用来测试某一代码片段是否被执行,使用方法非常简单.也可以输出变量值.另外: 由于System对象是核心Java