本文链接:http://blog.csdn.net/kongxx/article/details/7329515
最近在碰到一段JNI代码不停的出现core dump,用gdb看了一下core文件,信息也不是很清楚,于是想到了运行是debug JNI代码
,对于JNI代码要想动态debug还是有点小工作要做的,如下:
1. 首先修改java参数,添加-Xdebug -Xrunjdwp:transport=dt_socket,address=8888,server=y,suspend=n作为java参数,其中8888是端口号,suspend=n意思是java启动的时候不等待客户端debug连接,如果自己的程序是在一启动就需要调用JNI,这里可以将其值设置为suspend=n,这样java进程就会启动,然后等待客户端比如eclipse去远程调试,等于eclipse的远程调试连接后,java才会继续往下走,所以修改后的运行命令类似下面的语句
2. 在java中需要调用JNI代码的地方设置断点,然后使用eclipse远程调试连接java程序运行的机器和端口;
3. 等到eclipse连接后,在命令行看一下上面启动的java程序的进程PID;
4. 使用gdb连接上面的进程,命令如下
5. 设置断点在需要调试的JNI方法位置,如下:
6. 然后就可以使用各种gdb命令来调试和打印各个变量了。
分享到:
相关推荐
GDB调试精粹及使用实例GDB调试精粹及使用实例GDB调试精粹及使用实例GDB调试精粹及使用实例GDB调试精粹及使用实例GDB调试精粹及使用实例GDB调试精粹及使用实例GDB调试精粹及使用实例GDB调试精粹及使用实例GDB调试精粹...
GDB调试GDB调试GDB调试GDB调试GDB调试 GDB调试GDB调试GDB调试GDB调试GDB调试
讲述常用gdb命令,以及讲述如何使用gdb调试程序崩溃后产生的core dump文件,让您在linux下开发更轻松
VisualGDB调试Android JNI和Linux项目。详细的介绍了如何使用Visual GDB调试Android JNI项目和Linux项目。由于某些原因,图中部分内容被抹掉。敬请见谅。
gdb调试器的使用gdb调试器的使用gdb调试器的使用gdb调试器的使用gdb调试器的使用
使用GDB调试排错C++代码的绝密文档.
用GDB调试程序 用GDB调试程序 用GDB调试程序 用GDB调试程序 用GDB调试程序 用GDB调试程序
关于linux下使用GDB调试的资料 ,非常好。
gdb调试实例代码文件
陈浩-用GDB调试程序(整理有书签).pdf+守望的个人博客-GDB调试指南(整理有书签).pdf
使用gdb调试嵌入式应用程序 可使用gdb或者图形化的ddd和insight
GDB调试程序[陈皓] GDB调试工具指南 两个pdf文件
是学习嵌入式的很好的资料哦!里面详细介绍了怎样用gdb调试程序,是嵌入式程序调试入门必备的资料!
是关于利用GDB调试程序的资料。 GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具
使用GDB调试,英文版。对于从事 Linux C/C++ 后台开发的读者来说,GDB 调试是需要熟练掌握的一项技能
用GDB调试程序 用GDB调试程序 用GDB调试程序 用GDB调试程序 用GDB调试程序
gdb调试常用命令和使用教程,详细的介绍了如何使用gdb调试程序
GDB调试手册,中文版,很适合新手的手册,有基本用法有示例,我一直用着过来的,所以分享一下
非常详细的介绍 Linux下gdb调试工具指南
本文档是自己一边实际操作一边记录完成,每一关键步骤都有截图与详细...方法2的缺点是首次配置复杂,优点是不必每次调试都重新在目标机安装app,并可以在目标程序运行过程中随时开始调试。文档完成时间是2014年10月。