毕业时写了一段时间的C,那时候调试使用gdb,后来转了java,当时就想java程序怎么调试,找了一下,果然,那就是jdk自带的jdb

Linux下是这样的

一般我在linux下来调试Java程序

好,那么,问题来了,这玩意怎么用?有好几种玩法

第一种玩法:以经典的HelloWorld为例,先写一个Java程序,如下:

我们把编译好的类上传到linux下,如下所示

务必强调一下:类所在的包名的层次结构也要在linux下体现出来

下面我们来玩起来,在linux下操作如下

程序顺利debug,每次都输出当前的位置,就是line=5 这样的,也可以使用where来查看当前的线程栈,如下所示

好,到这里,入门完成,读者可能一脸懵逼,debug过程中没法看到源码啊,这是因为我们只有class,没有java文件

下面我们把java文件上传上来,可以上传到任何一个目录,只要后面正确指定就行了,创建一个文件夹

然后按照层次结构把源码上传上来

让我们重新组织下jdb的h3cne命令如下

开心吗?简单的debug就可以进行了

有的同学说我有很多jar,不是类,这也是可以的,自己多尝试一下,没有问题,碰到问题百度下

上面是通过jdb来启动一个程序,也有一种情况是程序在linux上跑得好好的,我想去调试的时候去调试,不想调试的时候让它自己运行不去打扰它

以我最近调试的flink为例,ps -ef一把看一下

程序启动的命令行里加上这些参数,然后怎么使用呢?在你想要去debug它的时候,使用下面的命令

这个时候,华三认证,jdb已经跟目标进程建立了关系,因为断点还没有触发,所以我们什么都看不到,我们尝试来发送一条消息到kafka来触发这个断点的hit

顺利命中,这里没有源码出现,是因为我没有放源码,我是在本地eclipse里打开java代码对比着看,读者也可以上传到linux下来玩,方法上面已经说过了

执行一把where看详细的当前位置

时刻提醒你是谁,你在哪,你在干什么,别迷失了方向,迷茫的时候就执行一把where就会找到新的方向

这种方式不用指定class在哪,因为我们是连接到进程来实现debug,进程都起来了,也不用担心class的识别了

好,简单的debug其实已经可以了,下面讲一下jdb的命令有哪些

读者可以在实践中来掌握这些命令的使用

当你把所有源码都debug完一遍的时候,相信我,你的巅峰之路就开始了!

出处:强子1985

linux命令行 jdb,什么使用加多宝(jdb)在linux下调试Java程序相关推荐

  1. jq输出文本_如何用 Linux 命令行工具解析和格式化输出 JSON | Linux 中国

    我们将使用 Linux 上的命令行工具解析并格式化打印 JSON.它对于在 shell 脚本中处理大型 JSON 数据或在 shell 脚本中处理 JSON 数据非常有用.-- Ostechnix J ...

  2. 【Linux命令行与Shell脚本编程】三,Linux文件系统

    Linux命令行与Shell脚本编程 第三章 Linux文件系统 文章目录 Linux命令行与Shell脚本编程 三.Linux文件系统 3.1,查看文件 3.1.1,ls 命令 选项和参数 3.1. ...

  3. Linux命令行如何编辑word文档,在Linux平台下用命令行工具显示Word文档

    在Linux平台下用命令行工具显示Word文档 ·Antiword ·Catdoc ·wvWare[@more@] Viewing Word files at the command line Wed ...

  4. linux 命令行 发行版,最受欢迎的Linux发行版, Manjaro折腾全记录(超长超详细)

    Manjaro到底有多受欢迎? DistroWatch是一个包含了各种Linux发行版及其他自由/开放源代码的类Unix操作系统(如OpenSolaris.MINIX及BSD等)的新闻.人气排名.以及 ...

  5. linux命令行终端的翻屏滚屏,linux命令行终端的翻屏滚屏more/less/head/tail

    屏幕翻页快捷键 shift+PgUp    向前翻看,一般翻13页左右. shift+PgDown  向后翻看,一般翻13页左右. 我们翻阅目录和打开文件后,经常会由于输出内容太多,使一屏无法显示,所 ...

  6. Linux初学(Linux命令行的使用)

    Linux初学(Linux命令行的使用) 1. 什么是Linux 2. 内核 3. shell的应用 3.1 什么是shell 3.2 shell的打开方式 3.3 shell命令行提示符 3.4 s ...

  7. linux中看挂载的磁盘用什么命令,使用Linux命令行挂载硬盘和分区 | MOS86

    如果您希望更多地使用Linux终端Linux命令行入门快速指南Linux命令行入门快速指南您可以在Linux中使用命令来做很多令人惊奇的事情,而且学习起来并不难. 此外,学习如何手动安装和卸载硬盘是一 ...

  8. linux下磁盘高级工具,Linux命令行工具-di

    今天小编要跟大家分享的文章是关于Linux命令行工具-di.如果你是个Linux命令行用户,你肯定会使用df命令检查文件系统的磁盘使用情况.尽管df是一个受欢迎的命令,但仍然不能提供一些高级的功能,如 ...

  9. linux命令行的操作符,如何在Linux命令行中进行基本的数学运算

    原标题:如何在Linux命令行中进行基本的数学运算 Linux bash或命令行允许您执行基本和复杂的算术和布尔运算.像expr,jot,bc和factor等命令可以帮助您找到复杂问题的最优数学解决方 ...

  10. linux 复制指定类型,用Linux命令行实现删除和复制指定类型的文件

    (一)Linux 删除当前目录及子目录中所有某种类型的文件 方法1 : 此方法不能处理目录中带空格的那些. rm -rf `find . -name "*.example"` Li ...

最新文章

  1. python判断语句_python条件判断语句if elif else使用
  2. 白话设计模式——Builder
  3. VMware下Linux虚拟机无法连接网络
  4. Spring动态注入泛型集合Bean
  5. 串口开发,数据类型转换——字符串转 byte[],byte[]转二进制,二进制转十进制转byte[],byte[]转十进制,byte[]拼接,校验
  6. 数组后存入数据、删除指定内容数据
  7. info - 阅读 info 文档
  8. openwrt下使用wget出现Failed to allocate uclient context
  9. 144个城市坐标Python程序
  10. 雷士灯wifi控制方法_一种wifi无线控制的灯具系统的制作方法
  11. 前端如何修改网页的标题栏图标和名称
  12. unity Input.GetTouch
  13. 网路损伤仪可以帮助测试网络游戏
  14. 了解无人驾驶汽车原理
  15. Unity Shader入门笔记
  16. 2021全球人才竞争力指数排名:瑞士居首,中国跻身前40;德科集团与北京外企成立合资公司LHH FESCO | 美通社头条...
  17. js吧html中的图片改为数组图片,巧用数组制作图片切换js代码
  18. 什么是 SourceMap?
  19. 电商ERP系统——商品SKU与库存设计
  20. Ae 入门系列之四:关键帧动画基础

热门文章

  1. android 设置默认铃声,我的Android进阶之旅------gt;Android系统设置默认来电铃声、闹钟铃声、通知铃声,android进阶...
  2. 《死亡诗社》影评(作业)
  3. 2022年上半年软考报名常见问题及解答
  4. u盘有声音但是不显示怎么办?u盘不显示解决方案
  5. keras.datasets.imdb.py 源码分析
  6. 2055041-21-7,Acid-PEG4-S-PEG4-acid在EDC和HATU等活化剂存在下,羧酸基团可与伯胺反应
  7. C++随机设置壁纸小软件
  8. Windows使用Hashcat
  9. Vim终极指南:所思即所得
  10. 从零开始搭建公司域环境(二):服务器安装域控并实现客户端加域登陆