在jdb中链接源码

在jdb中的很多命令都比较好理解,也很容易使用

但是list命令缺总弄不好,总是报“找不到源文件”;此时应该使用use命令来链接源文件

但是use的用法写的太简单了,只是说要跟源文件夹路径,但是也没说是相对哪儿的路径,经过一下午的试验,终于找到了规律

1.如果在工程路径下使用jdb,E:\workspace_RIA\HStudy>jdb -classpath classes jvm.init.Example5E:\workspace_RIA\HStudy>jdb -classpath classes jvm.init.Example5 正在初始化 jdb... > stop at jvm.init.Example5:7 正在延迟 断点 jvm.init.Example5:7。 将在装入类之后对其进行设置。 > run 运行 jvm.init.Example5 设置 未捕捉到 java.lang.Throwable 设置延迟的 未捕捉到 java.lang.Throwable > VM 已启动: 设置延迟的 断点 jvm.init.Example5:7 断点命中: "thread=main", jvm.init.Example5.main(), line=7 bci=4 main[1] list 找不到源文件: Example5.java main[1] use classes main[1] use src main[1] list 3 public class Example5 { 4 public static void main(String[] args) { 5 int a = 2; 6 int b = 3; 7 => if (args.length < 2) { 8 System.out.println("Must enter any two args."); 9 return; 10 } 11 12 System.out.println(args[0] + args[1]); main[1]

进入jdb后可以使用use命令查看当前链接源文件的路径,在上面这个例子中默认是classes文件夹,这是咱们在classpath选项中设置的。use命令也可以用来修改链接源文件的路径,上例中使用use src将路径改到src目录下,然后list命令就能起作用了

2.不在工程路径下运行jdb,而是在classes目录下运行jdb jvm.init.Example5

E:\workspace_RIA\HStudy\classes>jdb jvm.init.Example5 正在初始化 jdb... > stop at jvm.init.Example5:7 正在延迟 断点 jvm.init.Example5:7。 将在装入类之后对其进行设置。 > run 运行 jvm.init.Example5 设置 未捕捉到 java.lang.Throwable 设置延迟的 未捕捉到 java.lang.Throwable > VM 已启动: 设置延迟的 断点 jvm.init.Example5:7 断点命中: "thread=main", jvm.init.Example5.main(), line=7 bci=4 main[1] locals 方法参数: args = instance of java.lang.String[0] (id=323) 局部变量: a = 2 b = 3 main[1] list 找不到源文件: Example5.java main[1] use .; main[1] list 3 public class Example5 { 4 public static void main(String[] args) { 5 int a = 2; 6 int b = 3; 7 => if (args.length < 2) { 8 System.out.println("Must enter any two args."); 9 return; 10 } 11 12 System.out.println(args[0] + args[1]); main[1]

可以用use命令查看当前的链接源文件的路径是".",也就是classes目录,当然是无法链接源文件的。

此时若将src下的Example5.java移入到classes/jvm/init/目录下,然后执行list,发现就可以链接到源文件了

但是通常我们的目录结构是这样子的:

Project

-src

-classes

如果我们是在classes目录下运行的jdb,那么.代表当前目录,.\..\src就能访问到源码

所以我们可以用use .\..\src来链接源码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值