我对JDB感到有点困惑。相当擅长使用GDB,我知道用于控制执行的各种简单命令,即start,run,cont,step,stepi,break等等,但有很多(在我看来)不寻常的差异
如果我想启动一个应用程序(而不是运行它,那么我可以从头开始),本能地,我输入jdb MyApp
然后start
。我收到一个无法识别的命令错误。阅读JDB帮助没有给出任何启动命令或其等价物的指示。所以,我尝试step
- 这也不起作用;我被告知需要使用run
命令启动Java VM!
显然,它必须是可能的,因为在帮助中解释了step
命令。所以,我想也许我可以输入run
并很快按ctrl+c
来中断它,因为在GDB中,这会停止执行。相反,它只是退出JDB。
我试过谷歌搜索,无济于事。我希望我不是完全盲目愚蠢的!
Rant over:你到底是怎么开始在JDB中运行一个java应用程序,以便从一开始就可以执行它?
答案 0 :(得分:7)
我刚开始使用JDB
作为调试器。有很好的指示可以找到here。回答你的一些问题:
jdb
,请在命令提示符下键入jdb <name of main class>
run
stop at <class>:<line no.>
cont
正如我所说,我刚刚开始使用jdb
。我相信,有更好的方法可以做到这一点,如果我自己了解更多,我会在这里发布。
HTH。
答案 1 :(得分:1)
问题是VM还没有启动,这就是为什么你不能进入第一行的原因。解决方案是使用“-launch”作为命令行参数启动JDB。从那里你可以输入“step”或“cont”从头开始调试。
最好的一点是它只需要一秒钟而且不需要安装IDE: - )
答案 2 :(得分:0)
我正在以从未使用过Java的用户的身份阅读本材料,但以gdb的c的相当熟练的用户身份阅读本材料。我有很多很多场合需要进入源代码的第一行可执行文件-通常,我几乎总是使用以下序列来启动gdb。
在发出“运行”命令之前,在“主”处设置一个断点。然后,“运行”将加载程序,但在执行第一步之前将中断。
这可能对Java完全不适用,但我想我会提出建议。
答案 3 :(得分:-4)
我建议您使用IDE运行调试器。在IDE中,您可以通过单击运行旁边的按钮开始调试,通过单击一行添加断点并以图形方式查看线程和变量的状态。 (甚至改变它们)