如何调试JNI程序

本文详细介绍了如何在Windows和Linux环境下使用IDE(Idea和Eclipse)配合Visual Studio和CDT插件调试JNI(Java Native Interface)程序。在Windows上,通过在Idea中设置Java断点,并在VS2013中附加Java进程;在Linux上,通过Eclipse的CDT插件创建C++动态库,设置断点并附加到Java进程进行调试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

作者:朱金灿
来源:clever101的专栏

在windows平台上调试程序

  在windows平台上调试JNI程序的流程是这样的:
1.在idea上以Debug方式运行java程序,在String input = hello.getLine(“this is a prompt”);这句代码设置一个断点,运行到该断点时停下来,如下图:
触发idea上Java程序的断点
2.在vs2013上选择附加的Java进程,如下图:
选择附加到进程
选择对应的java进程并进行附加
3.在C++程序中的函数中加上断点,继续运行Java程序,一会儿就可以看到程序已经运行到了C++代码中,如下图:
进入C++程序中的断点

在Linux平台上调试程序

   在Linux平台调试JNI程序的流程是这样的:
1.给Eclipse安装CDT插件(用于在Linux下开发C++程序),如下图:
给Eclipse安装CDT插件
2.使用Eclipse创建一个C++ Shared Library工程(Linux下的C++动态库),然后把com_developerworks_HelloJNI.h和com_developerworks_HelloJNI.cpp加到工程,编译生成。如下图:
使用Eclipse创建一个C++ Shared Library工程
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程序的进程。如下图:
设置Eclipse C++工程调试配置
在Eclipse上选择附加的Java进程
5.在C++程序中的函数中加上断点,继续运行Java程序,一会儿就可以看到程序已经运行到了C++代码中,如下图:
程序运行到C++程序的断点中
   后续支持或需要示例代码,请添加VX: explorer101

参考文献

1.Android JNI(一)——NDK与JNI基础
2.JNI编程中如何传递参数和返回值
3.Linux下Eclipse里用gdb调试JNI里C/C++

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

clever101

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值