在Windows下调试Android NDK

前端之家收集整理的这篇文章主要介绍了在Windows下调试Android NDK前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在将一个复杂的C应用程序移植到Android,作为SO库,用瘦java层包装.
经过几个小时的麻烦,我在Android下编译代码,但当然,应用程序崩溃:(

环顾四周后,我明白在Android下调试C应用程序的唯一方法是通过gdb.既然我对gdb没有很多经验,那么任何人都可以分享一些见解吗?

任何人都有Windows下的gdb教程:)?

谢谢

对于更新版本的NDK(我使用的是r7c),您可以构建调试版本

>将android:debuggable =“true”标志添加到< Application> AndroidManifest.xml中的标记
>使用NDK_DEBUG = 1调用ndk-build(如果使用unix shell运行ndk-build,则不需要NDK_DEBUG标志)

在Windows上,事情变得有点棘手,因为使用ndk-gdb,你仍然需要从NDK r7c开始使用bash(或cygwin),但是如果你使用任何一个pre-cash,运行在cygwin bash中的ndk-build会遇到权限问题内置静态库

我在Windows机器上的解决方案是

>将android:debuggable =“true”标志添加到AndroidManifest.xml中的< application标签(与上面相同)
>在cmd(windows’命令提示符)中:使用NDK_DEBUG = 1调用ndk-build
>在cygwin bash中:运行ndk-gdb

为了快速初步调查本机库,使用一个按钮创建一个简单的活动来触发库输入功能和loadLibrary在活动中,如:

class MyActivity extends Activity {
    static {
       System.loadLibrary("mylibrary");
    }

    /* other functions like onCreate,etc... */

    public native void libfunc();

    public void onClick(View v){
       libfunc();
    }
}

因此,当gdb启动时,实际加载了有问题的库,但在程序崩溃之前你仍然有时间设置断点等;当你完成设置调试器时,在(gdb)提示符下键入continue(或只是’c’),然后单击按钮启动崩溃程序并快乐调试…

猜你在找的Windows相关文章