使用eclipse/ndk-gdb对java/native code联合调试

想必很多网友都有这样的疑惑,我的程序中上层是java代码,下层使用c/c++ 写的,那到底要怎么调试呢?

我们首先想到的是ndk-gdb,ndk是google提供的用来native code开发的,ndk-gdb使用来调试native code的。

我们还知道eclipse是用来调试java code的,它不能直接调试native code。

如果能将二者结合起来,一边用eclipse调试java代码,同时用ndk-gdb调试,那就再好不过了。

下面我们就来介绍如何进行联合调试

1. 准备ndk_r4, sdk 2.2, eclipse, ant
2. 我对hello-jni的代码做了点修改,参考附件代码
3. shell进入ndk/samples/
运行android update project --path hello-jni
进入ndk/samples/hello-jni
运行ndk-build
运行ant debug
启动android模拟器(可以从eclipse启动)
运行adb install bin/HelloJni-debug.apk
4. 使用eclipse创建一个android project,名字叫hellojni
把ndk/samples/hello-jni下所有文件copy到eclipse工程所在目录,然后编译
使用eclipse/ndk-gdb对java/native code联合调试_第1张图片
5. shell中启动ndk-gdb
使用eclipse/ndk-gdb对java/native code联合调试_第2张图片
6. 在hello-jni.c中设置断点,shell中执行b 30
使用eclipse/ndk-gdb对java/native code联合调试_第3张图片
7. shell中执行continue
使用eclipse/ndk-gdb对java/native code联合调试_第4张图片
8. 打开eclipse/ddms,找到hello-jni,然后点attach
使用eclipse/ndk-gdb对java/native code联合调试_第5张图片
9. 在eclipse的java程序中设置一个断点
使用eclipse/ndk-gdb对java/native code联合调试_第6张图片
10. 点模拟器中的button
使用eclipse/ndk-gdb对java/native code联合调试_第7张图片
11. eclipse java中的代码断点被hit上
使用eclipse/ndk-gdb对java/native code联合调试_第8张图片
12. eclipse中点continnue,ndk-gdb命令行中可以看到hello-jni.c的断点被hit上了
使用eclipse/ndk-gdb对java/native code联合调试_第9张图片

[email protected]原创,转载自http://www.devdiv.com/thread-32770-1-1.html

附件下载地址:http://download.csdn.net/detail/vblittleboy/8120167

你可能感兴趣的:(使用eclipse/ndk-gdb对java/native code联合调试)