美文网首页
如何使用加多宝(jdb)在linux下调试Java程序

如何使用加多宝(jdb)在linux下调试Java程序

作者: java高并发 | 来源:发表于2019-02-18 17:50 被阅读32次

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

windows里是这样的

Linux下是这样的

image

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

好,简单的debug其实已经可以了

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

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

顺便在此给大家推荐一个Java方面的交流学习群:957734884,里面会分享一些高级面试题,还有资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系,主要针对Java开发人员提升自己,突破瓶颈,相信你来学习,会有提升和收获。在这个群里会有你需要的内容 朋友们请抓紧时间加入进来吧

相关文章

  • 如何使用加多宝(jdb)在linux下调试Java程序

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

  • java相关的

    一文让你明白Java字节码 java命令调试程序 java jdb 命令行调试程序 Java编写时钟 Applet...

  • jdb调试本地JAVA程序

    一、配置 先参考该文章对java程序启动前进行配置:eclipse远程调试Web项目和Java程序 调试步骤可参考...

  • Android基础:jdb使用

    jdb可以用来打断点,jdb使用记录一下 一.首先找出需要调试进程的pid,adb shell ps -A 二.获...

  • java调试

    Java 调试器(JDB)是 JDK 内置的命令行工具。从调试的指令和命令行接口两方面看的话,JDB 至少从概念上...

  • 使用JDB进行调试

    在预发环境下进行debug时,时常因为工具和环境的限制,导致debug体验非常差,那么有什么方法能够简化我们进行d...

  • 使用jdb调试apk

    jdb是一个支持java代码级调试的工具,它是由java jdk提供的,存在于xxx\Java\jdk1.6.0_...

  • linux编程入门(七)-使用gdb调试程序

    程序开发离不开调试,可以断点调试,也可以打log调试,linux下断点调试c,c++程序用gdb。 断点调试虽然很...

  • 利用Core Dump调试程序

    描述 这里介绍Linux环境下使用gdb结合core dump文件进行程序的调试和定位。 简介 当用户程序运行,可...

  • windows下使用vs studio调试Linux下代码

    linux下使用gdb调试c的代码,很不直观,也很不方便,如果能够在windows下的IDE下调试linux的c代...

网友评论

      本文标题:如何使用加多宝(jdb)在linux下调试Java程序

      本文链接:https://www.haomeiwen.com/subject/tblzeqtx.html