JAVA JNI C调试器
是否有任何调试器可以帮助调试Java JNI程序和C库JAVA JNI C调试器,java,c,java-native-interface,Java,C,Java Native Interface,是否有任何调试器可以帮助调试Java JNI程序和C库 我应该能够在Java中从静态void main开始调试程序,继续调试并在本机c函数中放置断点,然后在控件从c转移到Java后继续在Java中调试。Java虚拟机调试器与本机代码调试器非常不同。目前还没有一个成熟的解决方案,像同一个调试器那样,能够无缝地从Java到本机代码再返回。虽然这是一个非常刺激的问题,使得一些聪明的人试图开发这样一个解决方案,但毫无疑问,其中涉及大量无法想象的问题。我个人是这样做的: 在调试模式下启动Java代码,并在
我应该能够在Java中从静态void main开始调试程序,继续调试并在本机c函数中放置断点,然后在控件从c转移到Java后继续在Java中调试。Java虚拟机调试器与本机代码调试器非常不同。目前还没有一个成熟的解决方案,像同一个调试器那样,能够无缝地从Java到本机代码再返回。虽然这是一个非常刺激的问题,使得一些聪明的人试图开发这样一个解决方案,但毫无疑问,其中涉及大量无法想象的问题。我个人是这样做的:
java(w.exe)
进程。在本机代码中放置断点我发现在IntelliJ IDEA调试器中运行java代码并设置一个非常早的断点可以将CLion的调试器连接到进程(在
sudo echo 0>/proc/sys/kernel/yama/ptrace_scope
之后)。然后,每个IDE将停止JVM,并在Java或JNI本机代码中的相应制动点处打开它的窗口,同时检查内存中任何上下文停止的对象。这使得体验相当顺利 看看这个,我也在同一条船上。我实际上是SWT开发人员(Eclipse的接口在SWT中)。在SWT中,大约有30个地方JNI/C返回java。我们找到的唯一解决方案是添加一个被所有回调调用的方法,并在那里设置一个断点。