相当于JDB中的GDB'start'?

时间:2011-03-27 19:51:38

标签: java gdb jdb

我对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应用程序,以便从一开始就可以执行它?

4 个答案:

答案 0 :(得分:7)

我刚开始使用JDB作为调试器。有很好的指示可以找到here。回答你的一些问题:

  1. 要启动jdb,请在命令提示符下键入jdb <name of main class>
  2. 要启动该计划,请键入run
  3. 要设置断点,请键入:stop at <class>:<line no.>
  4. 要步骤,请键入cont
  5. 正如我所说,我刚刚开始使用jdb。我相信,有更好的方法可以做到这一点,如果我自己了解更多,我会在这里发布。

    HTH。

答案 1 :(得分:1)

问题是VM还没有启动,这就是为什么你不能进入第一行的原因。解决方案是使用“-launch”作为命令行参数启动JDB。从那里你可以输入“step”或“cont”从头开始调试。

最好的一点是它只需要一秒钟而且不需要安装IDE: - )

答案 2 :(得分:0)

我正在以从未使用过Java的用户的身份阅读本材料,但以gdb的c的相当熟练的用户身份阅读本材料。我有很多很多场合需要进入源代码的第一行可执行文件-通常,我几乎总是使用以下序列来启动gdb。

在发出“运行”命令之前,在“主”处设置一个断点。然后,“运行”将加载程序,但在执行第一步之前将中断。

这可能对Java完全不适用,但我想我会提出建议。

答案 3 :(得分:-4)

我建议您使用IDE运行调试器。在IDE中,您可以通过单击运行旁边的按钮开始调试,通过单击一行添加断点并以图形方式查看线程和变量的状态。 (甚至改变它们)