NDK调试

1、配置好环境变量,这是为了方便起见。将你sdk和ndk的根目录放到环境变量path中。配置完成之后可以来个小检测:

  在命令行分别输入adb和ndk-stack后点击回车,只要他不报你这些东西找不到,就表示你配置好了;

2、接下来在命令行输入:adb logcat |ndk-stack -sym so文件所在的目录。然后点击回车,命令行会出现waitting for device;

3、修改你的manifist,添加android:debuggable="true"这句话;

4、

时间: 2024-10-09 05:21:30

NDK调试的相关文章

Android NDK调试出错Unknown Application ABI, Unable to detect application ABI's的解决方案

今天在调试Android NDK的时候,ADT的控制台报了这个错误: Unknown Application ABI, Unable to detect application ABI's 在网上查了好久,终于找到了解决方案: 在工程的jni文件夹下面新建一个Makefile类型的文件,文件名为Application.(注:如果你不知道怎么新建Makefile类型的文件,可以把jni文件夹下的Android.mk文件在原地复制一份,打开之后修改里面的内容即可). 如下图: Android NDK

Android NDK调试出错Unknown Application ABI, Unable to detect application ABI's的解决方式

今天在调试Android NDK的时候,ADT的控制台报了这个错误: Unknown Application ABI, Unable to detect application ABI's 在网上查了好久.最终找到了解决方式: 在project的jni目录以下新建一个Makefile类型的文件,文件名称为Application. (注:假设你不知道怎么新建Makefile类型的文件,能够把jni目录下的Android.mk文件在原地复制一份.然后重命名为Application.打开Applica

Eclipse下用NDK调试C/C++代码碰到 No Symbol table is loaded

被这个问题卡了我3天,终于搞清楚了原因.网上对这个问题也有各种解决方案:有的说需要增加编译参数-g:有的说写个test方法,先调用一下:有的说修改gdb.setup文件,确保是unix回车符.基本都属于胡扯的.先说说环境:Windows 7.Eclipse Juno 4.2.2.CDT 8.1.2.ADT 23.NDK r10d.Python 3.4.不要提什么cygwin,NDK r10d已经不需要它了,改用Python了.搞定这些环境真不易啊,还得FQ才行. 错误描述:整个编译运行没问题的前

NDK调试之ndk-gdb

NDK包含了一个辅助脚本ndk-gdb使你能够轻松地为你的 由NDK产生的机器码 启动一个调试会话. 要求 想要调试本地层代码,你必须遵循如下的要求: 使用ndk-build脚本编译你的app.ndk-gdb脚本不支持使用传统的make APP=<name>这种方法的编译. 在你的AndroidManifest.xml文件中,通过在<application>元素中包含android:debuggable属性并将该属性设置为true来启用app调试. 编译你的app来在Android

Android NDK调试C++源码(转)

[原创文章,转载请保留或注明出处,http://download.csdn.net/download/bigmaxim/5474055] 1. 相关软件 adt-bundle-windows-x86.zip --- Eclipse集成ADT插件,需要联网安装相应的Android SDK. jdk-6u43-windows-i586.exe --- JDK6 Eclipse运行需要JAVA环境,编译ANDROID应用也需要JAVA编译器. android-ndk-r8e-windows-x86.z

Android NDK调试方式之一: adb logcat

查看程序执行过程中所打印的log信息,用于辅助调试排除代码错误. 一.采用NDK安装包下Samples/hello-jni工程做实验 1)修改jni/hello-jni.c文件 #include <android/log.h> __android_log_print(ANDROID_LOG_INFO, "HelloJniTag", "The value is %d", 1000); 2)修改jni/Android.mk文件 LOCAL_PATH := $

NDK调试之ndk-stack

ndk-stack工具使你能够在stack traces出现在adb logcat的输出中时过滤它们.它也能将一个共享库中的任何地址替换为你的源码中的对应<source-file>:<line-number>值,以使问题能够更精确的描述. 比如,它能够将类似于下面的这些东西: I/DEBUG ( 31): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** I/DEBUG ( 31): Build fing

0xe7f001f0!?NDK调试过程,无故抛出SIGSEGV。

arm调试过程,如果抛一个SIGSEGV,地址在 0xe7f001f0 附近,原因居然是因为我在调试.当我使用n指令跳到下一行代码时,往往变成了continue指令一样地执行.还不确定地抛出SIGSEGV(addr:0xe7f00XXX),使用程序直接崩溃不能继续调试下去.查看寄存器发现的确有某个rN的寄存器被诡异地修改了.多次归纳后发现,都在调用虚函数时抛出SIGSEGV(addr:0xe7f00XXX),不论何处何种逻辑下,这个被神修改的寄存器的值都是0xe7f00XXX,在反编译逻辑中是要

android 通过adb 和 ndk调试堆栈

打开终端 , 输入以下命令, armeabi是应用编译好的.so库的路径 adb logcat|ndk-stack -sym ./armeabi/ 如果堆栈报错,会弹出报错内容. 如下: C:\Users\JC>adb logcat | E:\Users\android-ndk-r10c\ndk-stack -sym "F:\aofei-new\frameworks\runtime-src\proj.android\obj\local\armeabi"********** Cra