前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >jdb调试程序

jdb调试程序

作者头像
一见
发布2018-08-06 19:21:57
1.6K0
发布2018-08-06 19:21:57
举报
文章被收录于专栏:蓝天蓝天

1) jdb调试正在运行的进程: 先使用jps先确定进程号,然后让jdb连接上目标进程(23549换成实际的进程号): jdb -connect sun.jvm.hotspot.jdi.SAPIDAttachingConnector:pid=23549 接着,可以使用thread N切换线程(使用threads命令可以查看有哪些线程),如:thread 1,然后就可以使用where命令查看调用栈了(jdb中的where相当于gdb的bt)。 2) jdb调试未运行的程序: 程序代码: hadoop@hadoop-137-143:~/hbase> cat Hello.java public class Hello {     public static void main(String[] args) {         System.out.println("Hello World!");     } } 编译: hadoop@hadoop-137-143:~/hbase> javac Hello.java   运行: hadoop@hadoop-137-143:~/hbase> java Hello Error: Could not find or load main class Hello 运行报错,设置CLASSPATH后再运行: hadoop@hadoop-137-143:~/hbase> export CLASSPATH=. hadoop@hadoop-137-143:~/hbase> java Hello Hello World! 运行成功了,如果不想设置CLASSPATH,下面这样也可以运行成功: hadoop@hadoop-137-143:~/hbase> java -classpath . Hello Hello World! 也就是利用参数“-classpath”达到同样的效果。 开始调试,执行下面命令进入jdb: jdb -classpath . Hello 设置断点在main()函数: > stop in Hello.main Deferring breakpoint Hello.main. It will be set after the class is loaded. 运行到断点: > run run Hello 运行下一步: main[1] next > Hello World! 退出: main[1] quit

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2015-11-04 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档