首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

jdb调试程序

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

02
您找到你想要的搜索结果了吗?
是的
没有找到
领券