在Ubuntu中使用JDB调试代码
在Ubuntu中使用JDB调试代码
了解JDB
JDB是JDK安装的一部分,是基于文本和命令行的调试工具,JDB是可以免费获取且平台独立的,缺点是只有命令行格式。
JDB基础命令
- 在方法中设置断点stop in <class ID(类名)><method(方法)>
- 在行中设置断点stop at <class ID>:<line>
- 下一步:当前行step当前行+跳过进入函数next当前指令stepi执行至当前方法结束step up执行至下一断点next
- 查看所在行list
- 查看变量值:所有变量locals单个变量print <变量名>eval <变量名>
- 列出断点clear
- 清除断点clear <class ID>.<method>clear <class>:<line>
- 退出quit
调试实例
- 对于各命令的使用 
  
  
  
  
  
- 对于JAVA课本第二章例4的调试 
- 测试代码 
public class test{
     public static void main(String [] args){
	     int N=5;
	     System.out.println(fact(N));
     }
     public static int fact(int n) {
         if (n == 0)
             return 1;
	 else
	 return n * fact(n-1);
  }
}
并修改参数N的值



调试中遇到的问题
- 在调试中我测试了JAVA课本第三章例9的调试,在涉及到 - Scanner等JAVA自带的函数时使用- step会进入函数,而没有进入输入过程。
  
- 经常会遇到莫名退出。 
- 对于 - step up的使用有疑问,还需要再做尝试
在Ubuntu中使用JDB调试代码的更多相关文章
- JDB调试代码 20165324 何春江
		Java书本程序调试: 课上程序调试 
- 使用JDB调试Java程序
		Java程序中有逻辑错误,就需要使用JDB来进行调试了.调试程序在IDE中很方便了,比如这篇博客介绍了在Intellj IDEA中调试Java程序的方法. 我们课程内容推荐在Linux环境下学习,有同 ... 
- vs加调试代码的正确姿势
		为了方便,我们会在系统中加入一些调试代码,比如自动登录,这样会省掉很多精力时间,但用的姿势不对, 第一重姿势:打包注释 我看一些人在vs中加调试代码(比如自动登录),然后打包的时候注释掉,这样操作是省 ... 
- jdb调试scala代码的简单介绍
		在linux调试C/C++的代码需要通过gdb,调试java代码呢?那就需要用到jdb工具了.关于jdb的用法在网上大家都可以找到相应的文章,但是对scala进行调试的就比较少了.其实调试的大致流程都 ... 
- OD提示 "为了执行系统不支持的动作, OllyICE 在这个被调试的程序中注入了一点代码, 但是经过5秒仍未收到响应..." 解决办法
		别的OD就可以,我自己整合过的一个很顺手的OD就是不行,最后找到了解决办法: 转自:http://bbs.pediy.com/showthread.PHP?t=97629 -------------- ... 
- 分享一个自定义的 console 类,让你不再纠结JS中的调试代码的兼容
		问题的产生 在写JS的过程中,为了调试我们常常会写很多 console.log.console.info.console.group.console.warn.console.error代码来查看JS ... 
- 第49章 	在SRAM中调试代码—零死角玩转STM32-F429系列
		第49章 在SRAM中调试代码 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/fir ... 
- 在SRAM、FLASH中调试代码的配置方法(附详细步骤)
		因为STM32的FLASH擦写次数有限(大概为1万次),所以为了延长FLASH的使用时间,我们平时调试时可以选择在SRAM中进行硬件调试.除此之外,SRAM 存储器的写入速度比在内部 FLASH 中要 ... 
- 如何在pycharm中进入shell脚本调试代码
		首先在Teramal终端 输入python manage.py shell 然后进行下图操作来调试代码 
随机推荐
- 玩了下opencv的aruco(python版)
			简单的玩了下opencv里头的aruco,用的手机相机,手机装了个 ip摄像头,这样视频就可以传到电脑上了. 首先是标定,我没打印chessboard,直接在电脑屏幕上显示,拍了17张,大概如下: 又 ... 
- Linux系统编程——Daemon进程
			目录 Daemon进程介绍 前提知识 Daemon进程的编程规则 Daemon进程介绍 Daemon运行在后台也称作"后台服务进程". 它是没有控制终端与之相连的进程.它独立与控制 ... 
- 聊一聊isinstance与type
			聊一聊isinstance与type 最近写代码的时候遇到了一个关于isinstance与type的坑,这里给大家分享下,如果大家也遇到了同样的问题,希望本文能为大家解决疑惑把. isinstance ... 
- ie9 placeholder兼容代码方法
			function guid() { return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) { var r ... 
- HTML5 source标签:媒介元素定义媒介资源
			HTML5 source标签是一种媒介元素(比如 <video> 和 <audio>)来定义媒介资源.<source> 标签允许您规定可替换的视频/音频文件供浏览器 ... 
- related_name
			定义表Apple: class Apple( models.Model): origin_level = models.ForeignKey(AppleLevel) new_level = model ... 
- python数据类型、if判断语句
			python的数据类型: int(整型) float(浮点型) #相较c++,去除了char.long.longlong... str(字符串) #同等c++ sting类型 list(列表) ... 
- Android开发 android沉浸式状态栏的适配(包含刘海屏)转载
			原文地址:https://blog.csdn.net/liup1211/article/details/86583015 写在前面: 1,本文阐述如何实现沉浸式状态栏 2,部分代码有从其他博客摘抄,也 ... 
- ActiveMQ(4)---ActiveMQ原理分析之消息消费
			消费端消费消息的原理 我们通过上一节课的讲解,知道有两种方法可以接收消息,一种是使用同步阻塞的MessageConsumer#receive方法.另一种是使用消息监听器MessageListener. ... 
- Python科学计算结果的存储与读取
			Python科学计算结果的存储与读取 总结于2019年3月17日 荆楚理工学院 计算机工程学院 一.前言 显然,作为一名工科僧,执行科学计算,需用Python.PS:快忘记Matlab吧.我用了二十 ... 
