作者:朱金灿
来源:clever101的专栏
在windows平台上调试程序
在windows平台上调试JNI程序的流程是这样的:
1.在idea上以Debug方式运行java程序,在String input = hello.getLine(“this is a prompt”);这句代码设置一个断点,运行到该断点时停下来,如下图:

2.在vs2013上选择附加的Java进程,如下图:


3.在C++程序中的函数中加上断点,继续运行Java程序,一会儿就可以看到程序已经运行到了C++代码中,如下图:

在Linux平台上调试程序
在Linux平台调试JNI程序的流程是这样的:
1.给Eclipse安装CDT插件(用于在Linux下开发C++程序),如下图:

2.使用Eclipse创建一个C++ Shared Library工程(Linux下的C++动态库),然后把com_developerworks_HelloJNI.h和com_developerworks_HelloJNI.cpp加到工程,编译生成。如下图:

3.以Debug方式运行java程序,在String input = hello.getLine(“this is a prompt”);这句代码设置一个断点,运行到该断点时停下来。
4.右键选择C++ Shared Library工程,在右键菜单中选择“Debug”——“Debug Configurations”,在“Debug Configurations”窗口里选择C/C++ Attach to Application,在debugger选项卡里勾选Non-stop mode,单击Debug按钮后然后选择附加相应的Java程序的进程。如下图:


5.在C++程序中的函数中加上断点,继续运行Java程序,一会儿就可以看到程序已经运行到了C++代码中,如下图:

后续支持或需要示例代码,请添加VX: explorer101
参考文献
1.Android JNI(一)——NDK与JNI基础
2.JNI编程中如何传递参数和返回值
3.Linux下Eclipse里用gdb调试JNI里C/C++
本文详细介绍了如何在Windows和Linux环境下使用IDE(Idea和Eclipse)配合Visual Studio和CDT插件调试JNI(Java Native Interface)程序。在Windows上,通过在Idea中设置Java断点,并在VS2013中附加Java进程;在Linux上,通过Eclipse的CDT插件创建C++动态库,设置断点并附加到Java进程进行调试。

222

被折叠的 条评论
为什么被折叠?



