Java jdb远程调试命令行工具

有没有人有这方面的经验? 如果是的话,值得吗?

我昨天第一次使用jdb,我对结果非常满意。 你看,我在我的笔记本电脑上用Eclipse编程,然后部署到VM以确保整个shebang仍然有效。 非常偶然,我将不得不处理一些独立执行的事情,作为命令行。 这些东西有时需要调试。

这一直是一个问题,因为我不想在VM上安装Eclipse的麻烦(它已经足够慢了!),但我不知道有一种简单的方法可以让它连接到我的命令行 – 在完成运行之前运行类。

jdb来救援! 它起作用 – 小而实用,几乎到了它裸露的地步……这迫使你比你应用工具更多地应用你的思想(就像我在这里说的那样)。

确保打印出参考文献( solaris , windows , java 1.5 – 我认为它们都是一样的,真​​的如此),并在第二个屏幕上打开并浏览您的源代码。 我希望你有第二个屏幕,或者你会很多地使用alt-tabbing。

假设您的程序由以下命令启动:

java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=  

您可以通过jdb附加到此过程:

 jdb -attach  

JDB难以使用。 放置System.outs或使用IDE调试器将产生更好的结果。 对于更有趣的function(例如跟踪线程,堆大小等),您可以使用JConsole工具以图形方式获取信息。