JDB 的简单使用

覆冰监测系统服务器,基于分布式光纤振动传感的电缆覆冰舞动监测系统 监测意义我国高压输电网络已经形成了全国联网的格局,总规模世界第一。2018年底,全国发电装机容量已达19.0亿千瓦,全国 220kV及以上输电线路回路长度超过71万公里。我国电力能源集中在西北,而用户则集中在华东华南,所以高压输电网络的特点是长距离,大跨度,途径的自然环境多种多样。在高湿高寒的恶劣环境中,输电线非常容易发生覆冰舞动事故,由于覆冰形成的规则的非圆断面的缆线在风的激励下形成谐振,造成低... 阅读详情
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> 当新手开始学习Java时,在一开始的新鲜感后马上就会发现的一个问题就是如何调试。大家知道在Visual C++中提供了很好的调试工具,使用起来特别的方便。Java中,以JDK为例,没有一个方便的图形界面,所以给新手调试带来了很多的困难。很多人一开始是用System.out.println()来观察输出结果。如果写的程序很大,这样的方法就显然是效率太低。下面结合自己的学习体会简单谈一下Java中的调试工具JDB的使用。 环境:jdk 1.2.2 首先我们写一个最简单的小程序,但是它包含了一些最基本的面向对象要素。 class test { int a; int b; test(int aa,int bb) { a = aa; b = bb; } int add() {return a b;} } public class hehe { public static void main(String args[]) { int a = 2; int b = 3; int c= a b; System.out.println(c); test kk=new test(1,2); System.out.println(kk.add()); } } 存为hehe.java后,用javac -g hehe.java进行编译。用参数g是为了产生各种调试信息,不用就无法调试。如果这里遇到问题,请参考Helloworld攻略。上面的程序是可以通过的,可以直接用java hehe运行。下面结合该例子谈谈JDB的使用。 首先键入jdb hehe 如果出现下面信息,说明系统没有找到调试的类。此时可以用java -classpath . hehe命令解决。 C:javasource>jdb hehe Initializing jdb... hehe not found > 如果出现一下信息,说明开始进行调试,一切正常。如果是调试Applet,则用 appletviewer -debug hehe.html命令进行调试 C:javasource>jdb -classpath . hehe Initializing jdb... 0xb0:class(hehe) > 回想VC中的调试,应该是设置断点,然后再进行跟踪。Java中也是一样。用stop命令进行断点设置。然后用 run 命令开始调试,运行程序到断点,这里断点是设置在 main 主函数中。 > stop at hehe:18 Breakpoint set at hehe:18 > run run hehe running ... main[1] Breakpoint hit: hehe.main (hehe:18) main[1] 此时可以用locals命令查看变量,用step命令进入下一条命令,也可以用单独一个stop命令来查看断点的设置情况。注意此时b还没有被赋值。 main[1] locals Method arguments: Local variables: args = a = 2 main[1] step main[1] Breakpoint hit: hehe.main (hehe:19) main[1] 当运行到System.out.println()函数时,会出现一下提示: main[1] step main[1] Breakpoint hit: java.lang.ClassLoader.loadClass (ClassLoader:247) 这个是因为我们跟踪进去了println方法,我们一般没有必要这样做,此时可以用next跳过该方法进入到下一条一句。step的含义是进入函数跟踪,next是转入下一条语句执行。我们随时可以键入 locals 和 list 命令来查看变量值和当前运行的代码。下面箭头指到地方即为当前程序运行到的地方。 main[1] next main[1] Breakpoint hit: hehe.main (hehe:20) main[1] list 16 { 17 int a = 2; 18 int b = 3; 19 int c= a b; 20 => System.out.println(c); 21 test kk=new test(1,2); 22 System.out.println(kk.add()); 23 24 } main[1] 接下来的问题自然是如何查看对象。当程序运行到new命令处时,键入locals,可以看到 main[1] step main[1] Breakpoint hit: test. (test:5) main[1] list 1 class test 2 { 3 int a; 4 int b; 5 => test(int aa,int bb) 6 { 7 a = aa; 8 b = bb; 9 } main[1] locals Method arguments: Local variables: this = test@64fd6722 aa = 1 bb = 2 main[1] 可以看到此时显示的变量值是类test中构造函数中的变量值。this对象即为当前构造的对象。可以用dump命令进行查看。 main[1] dump this this = (test)0x11a { int b = 0 int a = 0 } 也可以在main函数中用dump kk和print命令命令进行对象查看 main[1] dump kk kk = (test)0x11a { int b = 2 int a = 1 } main[1] print kk kk = test@64fd6722 main[1] print kk.a kk.a = 1 main[1] print kk.b kk.b = 2 最后键入cont命令,如果没有其他断点,程序就直接运行完毕退出。调试结束。 main[1] cont 3 > Current thread "main" died. Execution continuing... > hehe exited 上述操作中的断点都是设置在main函数中的,如果要设置在调用的类方法中,则要用 stop in yourclassname.functionname 命令来进行设置,比如说: > stop in test.add Breakpoint set in test.add > run run hehe running ... main[1] 5 Breakpoint hit: test.add (test:11) main[1] list 7 a = aa; 8 b = bb; 9 } 10 int add() 11 => {return a b;} 12 } 13 public class hehe 14 { 15 public static void main(String args[]) main[1] 这样的话,我们已经可以在程序中的几乎所有需要地方的地方进行断点设置并进行跟踪,查看变量。 JDB还有很多的调试手段,除了上面那些最常用的,其他很重要的还有clear清除断点,use设置源程序路径,memory显示当前内存使用状况,gc强制进行内存回收,!!重复上面的命令,thread设置当前线程,quit和exit退出jdb等,还有远程调试等内容,都很有用。这里就不一一介绍了。
SolidWorks 小车底盘 装配体 通过制作小车底盘了解solidworks装配体的部分知识 阅读详情

相关推荐

DIY音频必备:手把手教你用AB类功放模块打造高保真桌面音响(含电路图)

本文详细指导如何利用AB类功放模块DIY高保真桌面音响,涵盖选型指南、核心元器件清单、电路搭建与焊接工艺,以及系统调试与音质优化技巧。AB类功放以其接近A类功放的音质和B类功放的效率,成为音频爱好者的理想选择,适合有一定电子基础的实践者。

weixin_42665725的博客 445

jdbk

jdbk: 是数据库连接; 写类的时候必须建包; po包:存放的是javabean类。每个javabean类对应数据库中的一张表,类名和表名一致; dao包:存放的是操作数据的类。即对数据库中的表进行增删查改操作的类; javabean类:存储操作的类,只包括属性,构造器,setter和getter方法 数据库操作步骤: 1.连接数据库; 2.通过连接获取得操纵数据

劘的图片 2326

海康VisionMaster图形定位实战:十字形Mark点精准匹配技巧

本文深入解析了海康VisionMaster图形定位模块在工业自动化中实现十字形Mark点精准匹配的实战技巧。文章从ROI设置、核心参数调优(如定位方式、尺度模式、对比度阈值)到工业场景应用与避坑指南,系统性地分享了提升匹配成功率和稳定性的关键步骤,帮助工程师应对复杂现场环境,实现高效、可靠的视觉定位。

weixin_29285605的博客 261

MySQL——JDBK 的学习小结 1

1.数据库编程的必备条件: (1)编程语言 (2)数据库 (3)数据库驱动包:不同的数据库,对应不同的编程语言提供了不同的数据库驱动包。 2.java的数据库编程:JDBC 3.JDBC的工作原理 JDBC优势: (1)java语言访问数据库操作完全面向抽象接口编程 (2)开发数据库应用不用限定在特定数据库厂商的API (3)程序的可移植性大大增强 4.JDBC的使用 (1)...

qinghuan1998的博客 1161

国民技术N32G45X低功耗问题之更改全局变量和栈在RAM中的地址

最近项目中用的MCU是国民技术的N32G45X,MCU的资源很丰富,RAM也很大,配套的库和例程也比较全,用起来还是不错的,但是在调试低功耗的时候还是费了不少劲。 首先由于项目低功耗需要,只能选择停机模式2(STOP2)。根据数据手册的描述,在此模式下外部低速时钟开启, RTC运行, R-SRAM保持,所有I/O状态保持,独立看门狗处于关闭状态,25℃的条件下电流为10个微安。 用的这款MCU的RAM是144KB,分为SRAM(128KB)和R-SRAM( Retention SRAM – 16KB),如果

狂想家 2486

微信DAT图片恢复全攻略:从文件路径到批量解密(附最新工具下载)

本文详细介绍了微信DAT图片恢复的全过程,从文件路径定位到批量解密操作,帮助用户高效恢复加密存储的图片。文章涵盖新旧版本微信的存储结构差异,推荐使用专业解密工具进行批量转换,并提供了提升恢复成功率的实用技巧和常见问题解决方案。

weixin_29325007的博客 455

【Java可执行命令】(六)调试工具 jdb:深入解析应用程序调试工具jdb ~

jdb是一个功能强大且灵活的 Java 调试器,提供了一系列功能和选项来帮助开发者定位、调试和修复 Java 应用程序中的问题。通过设置断点、单步调试、监视变量等操作,开发者可以深入了解程序的执行状态,并进行错误排查和性能调优。尽管jdb的命令行界面对于新手而言可能有一定的学习曲线,但通过熟悉其语法和常用选项,开发者可以更加高效地利用jdb进行调试工作。同时,需要注意在合适的情况下使用jdb,并遵循最佳实践以确保有效地使用调试器工具。

Technology changes the world of life 7689

用面包板实测MOSFET:手把手教你测量跨导和开关时间

本文详细介绍了如何使用面包板、Arduino和示波器搭建测试平台,实测MOSFET的跨导和开关时间。通过分步测量流程和示波器技巧,帮助电子设计初学者深入理解MOSFET的动态特性,包括跨导计算、开关时间参数解析以及米勒平台现象分析。

beer8的博客 223

JDB的使用

本文已参与「新人创作礼」活动,一起开启掘金创作之路。 背景 在本地开发的时候一版遇到问题都是通过debug去排查调试,如果在测试环境有问题需要调试,那么就可以采用JDB的方式,其实idea等开发工具debug的原理也是这个。前提是要指定debug端口。 所有的操作都要先打断点 1、线上程序使用jdb jdb -connect sun.jvm.hotspot.jdi.SAPIDAttachingConnector:pid= 例如: jdb -connect sun.jvm.hotspot.jdi.SAP

cz1803472613的博客 2996

【软件使用】Calibre部分提参的实用技巧与常见问题解析

本文深入解析Calibre部分提参功能的实用技巧与常见问题,重点介绍hcell和xcell文件的配置方法、PEX命令的进阶使用技巧,以及时钟失真等典型问题的排查指南。通过精准控制寄生参数提取范围,显著提升复杂芯片设计的效率与准确性。

weixin_30836759的博客 119

7、RNA 二级结构预测:包含接吻发夹基序的新策略

本文提出三种用于预测RNA二级结构中接吻发夹基序的新策略,结合规范化规则与非歧义动态规划,分别在时间与空间复杂度之间进行权衡。策略A以O(n⁴)时间和O(n²)空间实现高效预测;策略B通过存储次优结果扩大搜索空间,空间复杂度升至O(n³);策略C全面探索组合可能,时间复杂度为O(n⁵),但保持O(n²)空间。实验表明不同策略适用于不同复杂度的序列,为RNA结构预测提供了灵活且可扩展的解决方案。

j7k8l的博客 133

java jdb_JDB 的简单使用

十一、参考首先我们写一个最简单的小程序,但是它包含了一些最基本的面向对象要素。class test{int a;int b;test(int aa,int bb){a = aa;b = bb;}int add(){return a+b;}}public class hehe{public static void main(String args[]){int a = 2;int b = 3;int...

weixin_31822835的博客 1090

Linux内存管理(17):percpu 分配器——基本原理

随着 SMP(对称多处理器架构)的发展,在享受处理器更快的执行效率的同时,也为数据同步带来了更大的挑战,因为在 SMP 架构中,程序确实是在并发执行,从单 CPU 只需要考虑调度风险,到SMP 中还需要考虑多 CPU 中同时执行的风险,而且在单 CPU 下乱序执行也会在 SMP 架构中带来,从而也衍生了一些新的同步机制,例如:内存屏障、percpu 机制等等。

私房菜 1250

JDB 的简单使用

环境:jdk 1.2.2 首先我们写一个最简单的小程序,但是它包含了一些最基本的面向对象要素。 class test { int a; int b; test(int aa,int bb) { a = aa; b = bb; } int add() {return a+b;} } public class hehe { public static

不知道要什么,便什么都想要,最后什么都要不到 1392

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

JDB的简单使用

JDB是JDK自带的调试工具,可以比较方便的对程序进行调试。加入将要调试的程序为hello.java。 1.javac -g hello.java 2.可以用JDB开始调试了。  cd hello.java的目录下  jdb hello 3JDB的调试就是设置断点,然后运行,然后看看各个参数的变化或者哪里有语法错误。   stop at hello:20  //stop命令是用

keepingsnow的博客 1355

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Java中的调试工具JDB 的简单使用

      当新手开始学习Java时,在一开始的新鲜感后马上就会发现的一个问题就是如何调试。大家知道在Visual C++中提供了很好的调试工具,使用起来特别的方便。Java中,以JDK为例,没有一个方便的图形界面,所以给新手调试带来了很多的困难。很多人一开始是用System.out.println()来观察输出结果。如果写的程序很大,这样的方法就显然是效率太低。下面结合自己的学习体会简单谈一下J...

mybestsap的专栏 618

validating - Debugging with JDB

The Java Debugger (JDB) is a command-line tool that ships with the JDK. JDB is at least conceptually a descendant of the Gnu Debugger (GDB, which was inspired by the original Unix DB), in terms of the...

wangbingfengf98的专栏 221

jdb java_JAVA初学者的JDB 尝试

使用JDB调试简单递归程序首先在终端使用Ctrl+Shift+T打开三个标签,方便操作。使用Vim编辑自己的程序,练习程序如下1 public class Factorial {2 public static void main(String [] args) {3 System.out.println(fact(5));4 }56 public stati...

weixin_34570232的博客 280

java调试命令jdb

在命令行中可以使用jdb命令来进行类的调试:类Hello.java如下:class Hello{ public static void main(String[] args){ System.out.println("输出100/0的结果:"); System.out.println(100/0); } }在类目录下使用 javac Hello.jav

青山师 1747

java 调试命令_命令行工具jdb调试Java程序

一直在gdb 下调试c/c++程序。突然要写个java程序,又不是很喜欢使用eclipse,那怎么调试程序呢。你还可以使用 jdb。它是jdk 内置一直在gdb 下调试c/c++程序。突然要写个java程序,又不是很喜欢使用eclipse,那怎么调试程序呢。你还可以使用 jdb。它是jdk 内置的一个java debug工具。类似与 gdb。不过功能稍弱,但也已经很值得敬佩了。假如你的java源代...

weixin_42299801的博客 354

linux命令行 jdb,JDB调试用法指南

JDB Debugging TutorialBy:For:Last Modified: 18 October 2005Part 1ContentsThis tutorial is designed to show how to use JDB (the JavaDebugger) to find and fix errors in Java programs. It assumes noprio...

weixin_39621456的博客 1027

简单的 JDB 调试命令

环境:jdk 1.2.2 首先我们写一个最简单的小程序,但是它包含了一些最基本的面向对象要素。 class test { int a; int b; test(int aa,int bb) { a = aa; b = bb; } int add() {return a+b;} } public class hehe { publ...

iteye_8544的博客 414
上一篇: lucene1.3-final完全支持中文的切词和全文检索了!
下一篇: Tomcat4.1自动生成日志文件系统配置方法
java169
博客等级 码龄18年 27粉丝 2568原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值