2011-03-27 80 views
2

我被JDB搞糊涂了。相当擅长使用GDB,我意识到用于控制执行的各种简单命令,即开始,运行,继续,步骤,步骤,休息等,但有一些(在我看来)有不同寻常的差异。JDB中的GDB'start'等价吗?

如果祝(运行它相对于,所以可从开始步骤的话)来启动应用程序,本能地,I型jdb MyApp然后start。我收到一个无法识别的命令错误。阅读JDB的帮助不会让我知道任何启动命令或其等价物。所以,我尝试step - 那也不管用;我被告知我需要用run命令启动Java VM!

很明显,它必须是可能的,因为在帮助中有一个step命令。所以,我想这可能是我可以输入run,并很快按ctrl+c来中断它,因为在GDB中,这会停止执行。相反,它只是退出JDB。

我试过Google搜索这个,无济于事。我希望我不会完全盲目愚蠢!

Rant over:你到底是怎么开始在JDB上运行一个Java应用程序的,这样你就可以从一开始就对其进行分步操作?

回答

-4

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

+2

我不喜欢在我的编程线IDE的粉丝;当然,如果一个IDE可以做我需要的东西,那么'jdb'可以,因为IDE很可能成为它的前端? – Doddy 2011-04-12 20:51:15

+0

当然可以,但为什么事情要比他们需要的复杂得多。难道不是为了充分利用可用的工具来完成工作吗?你感兴趣的编程线是什么? – 2011-04-12 21:42:22

+0

我的编程大部分都是关于后端或纯数字运算的主题。 IDE真的让我很烦恼。我已经在命令行上使用了'GDB'很长一段时间了,这太棒了;我不想使用任何IDE。对我来说,这只是增加了写作过程的大部分,并没有让我觉得我已经取得了很多成就。所以,鉴于此,你知道我原来的问题的答案吗? – Doddy 2011-04-16 16:00:04

6

我刚开始使用JDB作为调试器。有很好的说明可以找到here。为了回答大家的一些问题:

  1. 要开始jdb,请在命令提示符下,键入jdb <name of main class>
  2. 启动程序,类型run
  3. 要设置断点,请键入:stop at <class>:<line no.>
  4. 到步骤,类型cont

正如我所说的,我刚刚开始使用jdb。我相信,有更好的方法来做到这一点,如果我能更了解我自己,我会在这里发帖。

HTH。

+0

:在使用'run'启动应用程序后,它看起来像我一样,输入到jdb仍然是活动的,即只需按Enter键应该提供一个新的jdb提示符,并且可以使用'suspend'命令暂停所有线程 – 2013-12-03 08:34:05

1

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

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