我正在尝试编写一个简单的 Java 应用程序,该应用程序调用用 C 编写的本机方法。我使用的是 Netbeans IDE,并且代码运行良好,但是当我调试时,我无法在本机(C)代码中命中断点。
我正在使用带有 Mac OS X Lion 的 netbeans 7.1.2。我尝试在调试模式下启动 Java 项目,然后使用 Debug/Attach Debugger/gdb 方法,但它显示带有此消息的调试器控制台
11-break-insert -f "/Users/user/NetBeansProjects/JniFileDemoCdl/JniFileDemo.c:8" 12-break-insert -f "/Users/user/NetBeansProjects/JniFileDemoCdl/JniFileDemo.c:42" 13-break-插入 -f "/Users/user/NetBeansProjects/JniFileDemoCdl/JniFileDemo.c:80" 14-exec-continue
我不知道除了这一步之外该做什么以及如何命中本机断点。
更新:我已经找到了在 Netbeans 中同时调试 C 和 Java 代码的方法。
这样做的方法是在本地方法上使用断点启动 Java 项目。然后将C项目设置为主项目,并使用Attach Debugger将java进程附加到它上面。在 C 代码中设置断点。当您执行此操作时,Java 调试器窗口将被隐藏,但在左下方屏幕上您可以看到“会话”按钮。单击它并返回您的 Java 会话,当您跳过本机方法时,窗口会将您移动到 C 代码断点但调试按钮未激活,再次会话按钮并选择 C 会话,您将收到调试控制。调试愉快!