调用gdb来调试java程序

时间:2014-12-22 17:53:20

标签: java emacs gdb

我对编程很陌生,在调试java程序时遇到一些麻烦。我尝试使用gdb来调试我的java程序,但无论我怎么努力,它仍然无法正常工作。

emacs(GUI)迷你缓冲区中的错误消息始终是“没有这样的文件或目录,gdb”。我确信我的currrent目录与源文件和编译文件(使用“javac -g xx.java”编译的可执行文件)相同。

所以,我的困惑是:错误是否与以下内容有关:        1.调用gdb的语法错误(使用Meta gdb xx)        2.什么是gdb的可执行java文件/ gdb如何识别它们        3.我的EMACS安装是否可能不完整,因为我将gdb输入到命令行(Win8系统), NO gdb提示符出现(类似于(gdb ....) )

1 个答案:

答案 0 :(得分:2)

错误No such file or directory, gdb

  • 如果错误消息来自 emacs ,则表示未安装gdb。要解决此问题,请安装gdb。请注意,gdb不是 emacs 的一部分,它是一个单独的程序。如果你得到gdb包,它通常是gcc的一部分,GNU编译器集合,而不是Emacs。来源是相同的 - FSF(自由软件基金会)/ GNU项目(GNU不是Unix),但它是不同的/单独的包。
  • 如果错误消息来自 gdb ,则表示gdb无法找到可执行文件。请参阅下一点。

但是,查看您的说明,根本不会安装gdb

gdb无法直接调试Java

gdb通常不能用于调试Java程序,它只能用于调试使用gcj编译成二进制文件的Java程序。另请参阅其手册中的Java Debugging with gdb

您可能希望转而使用jdb,这是JDK附带的Java调试器。

Emacs for Java?改为使用IDE

Emacs确实是一位出色的文本编辑器。人们对Emacs的笑话,例如"实际上,Emacs是一个用于开发计算机游戏的Common Lisp实现,恰好有两个最好的文本编辑器之一作为演示应用程序"是伟大的双关语。我自己也是一个vim用户,我对Emacs及其对计算机科学的贡献(即Common Lisp)只有最深的敬意。

但无论Emacs和vim有多好,最近IDE都会将它们击败它。

三种最流行的Java IDE

  • 的Eclipse
  • 的NetBeans
  • IntelliJ IDEA

我推荐IntelliJ IDEA,并且有我的理由,但你不能选错。他们一切都很好!

IDE提供什么?

  • 语法突出显示
  • Bleeding edge与最新的Java版本
  • 数以百计的额外支票(特别是IntelliJ IDEA:Inspections)
  • 许多典型的自动编辑(特别是IntelliJ IDEA:意图)
  • 重构
  • Java调试
  • Java反编译
  • 代码覆盖率
  • 代码完成
  • 对JavaDoc帮助的集成访问
  • 与单元测试框架集成
  • 与版本控制系统集成
  • 与Android SDK和模拟器集成
  • 与典型的Java构建工具Ant,Maven,Gradle集成
  • 使用那些很多插件的内容更多

Emacs或vim也提供了其中的一些东西 - 但不是全部。

我的Emacs(或vim)知识怎么样?

我自己也是一个vim高级用户,但我不会将vim用于任何超过Hello,World的Java,因为像IntelliJ IDEA这样的IDE会好得多。经常提出的一个论点是,我们的用户在vim和emacs等编辑中投入了大量资金,学习了所有生产力的快捷方式。这种知识不需要丢失。 IntelliJ IDEA为Vim用户提供了一个 IdeaVim 插件,为Emacs用户提供了一个 emacsIDEA 插件。我不知道,但我可以想象其他IDE有类似的插件。