jdb - The Java Debugger
jdb 是一个简单的命令行调试器,可以调试本地或远程 Java Virtual Machine。
jdb [ options ] [ class ] [ arguments ] options 命令行参数 class 调试的类名称 arguments main函数的参数
1. 开始调试
有两种方式启动调试,一个是新启动一个 JVM 加载指定的类,然后在开始执行指令时停止;另一个是连接到一个正在运行的 JVM。具体方法如下。
(1) C:\> jdb MyClass (2) C:\> java -agentlib:jdwp=transport=dt_shmem,address=jdbconn,server=y,suspend=n MyClass C:\> jdb -attach jdbconn
2. jdb 基本操作命令
help, or ? 显示帮助信息 run [class [args]] 执行 main 方法 threads 列出正在运行的线程 thread <thread id> 设置默认线程 where 转储线程堆栈 print 显示Java对象(简短描述)或原始数据类型值,若要显示本地变量在编译时需添加 -g 参数 print 支持简单的Java表达式,如下: print MyClass.myStaticField print myObj.myInstanceField print i + j + k (i, j, k are primities and either fields or local variables) print myObj.myMethod() (if myMethod returns a non-null) print new java.lang.String("Hello").length() dump 原始类型打印值,对象打印每个字段(静态和实例)的当前值,同print也支持表达式 locals 输出当前栈帧本地变量 classes 列出当前已知的类 class <class id> 显示类详细信息 methods <class id> 列出类方法 fields <class id> 列出类字段 stop in <class id>.<method>[(argument_type,...)] 在方法中设置断点 stop at <class id>:<line> 在某一行设置断点 stop at MyClass:22 (在 MyClass 第22行设置断点) stop in java.lang.String.length (在String.length方法设置断点) stop in MyClass.<init> (MyClass 构造函数) stop in MyClass.<clinit> (MyClass 静态块初始化方法) clear <class id>.<method>[(argument_type,...)] 清除一个方法的断点 clear <class id>:<line> 清除某一行断点 clear 列出所有断点 step 执行到下一行 next 执行当前栈帧下一行 cont 从断点处继续执行 exit 退出
3. 命令行选项
# jdb 也识别许多java命令选项,如-D,-classpath,-X<option>(非标准 VM 选项) -help 显示帮助信息 -sourcepath <dir1:dir2:...> 在指定路径下搜索源文件,默认在当前目录下 -connect <connector-name>:<name1>=<value1>,... 附带参数连接到目标 JVM -tclient Java HotSpot™ VM (Client) -tserver Java HotSpot™ VM (Server) -Joption 将选项传递给JVM,以运行jdb,如-J-Xms48m 设置堆大小
4. 调试 Hello World
更多信息,请参考:jdb
jdb - The Java Debugger的更多相关文章
- 十、jdk工具之Jdb命令(The Java Debugger)
目录 一.jdk工具之jps(JVM Process Status Tools)命令使用 二.jdk命令之javah命令(C Header and Stub File Generator) 三.jdk ...
- 使用JDB调试Java程序
Java程序中有逻辑错误,就需要使用JDB来进行调试了.调试程序在IDE中很方便了,比如这篇博客介绍了在Intellj IDEA中调试Java程序的方法. 我们课程内容推荐在Linux环境下学习,有同 ...
- 命令行工具jdb调试Java程序
一直在gdb 下调试c/c++程序. 突然要写个java程序,又不是很喜欢使用eclipse,那怎么调试程序呢.你还可以使用 jdb. 它是jdk 内置的一个java debug工具.类似与 gdb. ...
- java debugger
当你想找方法被哪个地方调用了,可以打断点看debugger方法栈 idea Debugger
- Debug with jdb
原文地址: http://www.javaworld.com/article/2077445/testing-debugging/debug-with-jdb.html Q: How do you u ...
- Java控制台常用命令
http://docs.oracle.com/javase/7/docs/technotes/tools/windows/java.html javaw是java的带console版本,其他一致. h ...
- Java Basic&Security Tools
JDK Tools and Utilities Basic Tools These tools are the foundation of the JDK. They are the tools yo ...
- Java版本和功能指南
您可以使用本指南查找和安装最新的Java,了解Java发行版(AdoptOpenJdk,OpenJDK,OracleJDK等)之间的差异,以及获得Java语言功能的概述,包括Java版本8-13. J ...
- java jdb命令详解
jdb - Java debugger 功能描述: 通过简单的命令行程序,对本地或远程jvm进程进行调试. 开启jdb会话: 有多种方式可以开启jdb会话. (1)常见的方式是采用Jdb命令打开一个新 ...
随机推荐
- php使用递归创建多级目录
<?php header('Content-type:text/html;charset=utf8'); echo "Loading time:".date('Y-m-d H ...
- DG环境数据库RMAN备份策略制定
DG环境数据库RMAN备份策略制定: 主库(Primary) 全库备份 归档备份 删除历史文件夹 备库(Standby) 删除归档 引用说明 主库(Primary) $ crontab -l 0 1 ...
- C#设置文件权限
在开发中,我们经常会使用IO操作,例如创建,删除文件等操作.在项目中这样的需求也较多,我们也会经常对这些操作进行编码,但是对文件的权限进行设置,这样的操作可能会手动操作,现在介绍一种采用代码动态对文件 ...
- 用react的ReactCSSTransitionGroup插件实现简单的弹幕动画
1,开始的思路 公司想做直播方面的项目,并想加入弹幕的功能,直播的页面已经作为一个组件放在了用react+redux写好的一个网站项目上.所以技术老大让我研究下如何用react实现弹幕的功能.下面我就 ...
- 在本地测试一次成功的AJAX请求
要在本地测试AJAX,首先是环境的搭建,下面以wamp为例. 1.先在wamp的官网下载wamp的安装包,网址 http://www.wampserver.com/. 2.安装wamp.如果安装过程中 ...
- css学习--css基础
学习慕课网笔记,课程:http://www.imooc.com/code/2024 1.css选择器 子选择器:parent>child 子选择器是指选择parent的范围内的第一个子元素.这里 ...
- Windows Phone 的 TextBox 的实现 PropertyChanged
比如,View 的文本框 TextBox1 绑定了 ViewModel 的 Msg 属性, 当想把文本框输入的内容输入过程中实时更新到绑定的 Msg ,在Windows Phone 中是无法通过设置 ...
- 分享一个基于HTML5实现的视频播放器
什么是hivideo? 最近一段时间在使用PhoneGap开发一个App应用,App需要播放视频,本想直接使用html5的video,但使用它在全屏播放时不支持横屏播放,只能放弃.最终决定还是自己封装 ...
- JQuery文件上传插件ajaxFileUpload在Asp.net MVC中的使用
0 ajaxFileUpload简介 ajaxFileUpload插件是一个非常简单的基于Jquery的异步上传文件的插件,使用过程中发现很多与这个同名的,基于原始版本基础之上修改过的插件,文件版本比 ...
- MS SQL Server中数据表、视图、函数/方法、存储过程是否存在判断及创建
前言 在操作数据库的时候经常会用到判断数据表.视图.函数/方法.存储过程是否存在,若存在,则需要删除后再重新创建.以下是MS SQL Server中的示例代码. 数据表(Table) 创建数据表的时候 ...