【发布时间】:2013-12-23 04:48:30
【问题描述】:
我在 Windows 7 上使用 Eclipse CDT,MinGW 作为我的工具链,GDB 作为我的调试器。在大多数情况下,我已经能够让一切正常工作,包括 Java、C/C++ 和 JNI 应用程序的开发。
但是,我无法调试这些 JNI 应用程序的本机端。 Java 调试器适用于 Java 代码,而 GDB 适用于纯本机代码,但我似乎无法让 GDB 对 JNI .DLL 中的代码正常运行。
我已经在网上搜索了很长一段时间,听起来人们取得的成功是通过在从 Eclipse 启动 Java 进程后附加到正在运行的 Java 进程。然后,设置一个断点并让 GDB 命中它。不幸的是,这似乎不适用于 Windows 用户。
似乎可行的唯一建议(我可以确认)是在 Eclipse 中启动 Java 应用程序,然后从 Visual Studio 附加到该进程。从那里您可以在本机代码中设置断点,它们将被命中。这种方法本身就是一种痛苦,但真正令人讨厌的是,您需要从 Visual Studio 编译 .DLL 才能生成用于调试符号的 .PDB 文件。在这一点上使整个 CDT 有点无关紧要。
我更愿意留在 Eclipse 中,但前提是我可以实际使用它进行调试。任何人都可以确认是否可以从 Windows 使用 Eclipse CDT 调试 JNI 代码?
【问题讨论】:
标签: eclipse java-native-interface gdb mingw eclipse-cdt