博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
jdb调试程序
阅读量:6585 次
发布时间:2019-06-24

本文共 1022 字,大约阅读时间需要 3 分钟。

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

转载地址:http://uaano.baihongyu.com/

你可能感兴趣的文章
MVC发送邮件
查看>>
和同事合作开发,使用局域网 git创建本地仓库
查看>>
【java】乱码处理+编码转化+判断字符串编码方式
查看>>
【Android】ListView 优化
查看>>
本地环境phpStorm10+XDebug配置和断点调试
查看>>
HDOJ 4251 The Famous ICPC Team Again
查看>>
POJ 3132 & ZOJ 2822 Sum of Different Primes(dp)
查看>>
SharePoint 2016 工作流报错“未安装应用程序管理共享服务代理”
查看>>
MyBatis源码解析【6】SqlSession运行
查看>>
java.lang.ClassNotFoundException:org.springframework.web.context.ContextLoaderListener问题解决
查看>>
第一章: 当前主流的小型嵌入式 GUI
查看>>
【剑指Offer面试题】 九度OJ1368:二叉树中和为某一值的路径
查看>>
黑幕背后的Autorelease
查看>>
怎样防止应用因获取IDFA被AppStore拒绝
查看>>
c#用webkit内核支持html5
查看>>
Java -- POI -- 入门使用以及简单介绍
查看>>
jQuery中的append()和prepend(),after()和before()的差别
查看>>
Android 离线缓存的高速实现
查看>>
游戏开发者须要看的书籍
查看>>
html5中audio的详细使用
查看>>