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
最新文章
- Log4Net异常日志记录在asp.net mvc3.0的应用
- iPhone被盗后续更新一:怎么找老机
- HTML5商城开发三 jquery 星星评分插件
- Linux 使用 su 切换用户提示 Authentication Failure 的解决方法
- Python实现顺时钟回形矩阵
- Web前端新人笔记之了解Jquery
- Linux用户及用户组管理
- 【集训笔记】博弈论相关知识【HDOJ 1850【HDOJ2147
- 应用程序入口 WSGIHandler
- C# 调用C++ DLL 的类型转换
- windows下的python flask环境搭建
- HDU 5288 OO‘s sequence (技巧)
- 转:2016年崛起的js项目
- ios-项目启动页面
- 题解【bzoj2733 [HNOI2012]永无乡】
- 最新版chrome浏览器如何离线安装crx插件?(转载)
- Redis数据结构:SDS
- zabbix报警-邮件-钉钉
- 有云Ceph课堂:使用CivetWeb快速搭建RGW
- 转载Verilog乘法器
热门文章
- Tomcat 7 可以修改 Session 默认的 Cookie 名 JSESSIONID 了
- SQL Server中动态列转行
- List of LTE networks
- The type org.springframework.context.support.AbstractApplicationContext cannot be resolved
- .net下所有DLL(API)查询,转换C#代码
- C++ 构造函数_拷贝构造函数
- Windows RDP远程连接CentOS 7
- android.support.v7.internal.widget.ActionBarOverlayLayout Couldn't Be Initialized
- phpcms模块开发中的小问题及解决方法
- Phython智能分词开发