Android中NDK单步调试

在Windows 10上搭建ARM32安卓模拟器:从环境配置到远程调试 本文详细指导在Windows 10系统上搭建ARM32安卓模拟器的完整流程,涵盖环境配置、镜像下载、AVD创建及启动优化。重点解决移动安全研究与安卓逆向工程中运行老旧32位应用的需求,并演示如何通过ADB连接及配置IDA Pro进行远程动态调试,为开发者提供稳定的ARM32分析环境。 阅读详情

注意:

1. 作者是在MAC os上面使用eclipse,我们如果没那么有钱,可以使用linux和MAC一样方便的调试ndk,但是不推荐使用windows(涉及恶心的cygwin)。

2. 作者有一个坑没有遇到,我却遇到了,请看我另一篇文章http://blog.youkuaiyun.com/xingxiliang/article/details/18351307。

3. ndk调试需要将gdb挂上去,所以有一个延时,所以需要在程序运行5秒之后再点击按钮,才能进入我们在c、cpp文件中设置的断点。


以下是转载内容:

由于最近需要调试C++程序,以后都是暴力调试的,暴力调试就是在源码中把想要得到的内容通过log的形式输出,这就调试速度快精准度高,但是得到的内容有限,所以才开始使用GDB来高度C++。

现在如果想要通过Google搜索关于Debug Android Ndk的内容很多都是旧版本的,如今ADT插件的发展已经支持NDK的调试的,不需要安装Sequoyah插件与一大堆配置,只需要简单几步即可调试应用,下面记录下调试的步骤,方便以后查阅。

  1. 系统: OS X 10.8.3
  2. Eclipse: Juno 4.2.1
  3. ADT: r21.1.0
  4. NDK: android-ndk-r8e

一、创建工程


二、添加Native支持



三、切换至C/C++视图,方便C/C++代码编写


四、检查工程目录结构是否正常,如果没有includes文件夹可以关闭工程再重新打开



五、这样一个完整的工程就创建完成了,接下来我们要实现的功能是点击一下按键,显示从Jni返回的字符串。

接下来就是debug了,debug前需要修改工程属性


在c++地方打上断点

现在就可以debug了

\

android ndk:warning APP_PLATFORM android-18 is larger than adroid:minSdkVersion 10 in ./AndroiddManifest.xml,


这个提示是我在debug as->android native applicationd 进行真机调试的时候遇到的很恶心

我的android sdk 是 android-18, 我的手机是2.3 (即android-10)那么怎么解决这个ndk的app_platform不匹配的问题呢?

需要在jni文件夹的下面手动建立新一个文件

 Application.mk在文件中加上下面这个

APP_PLATFORM := android-10  

然后clean工程,重新编译,再看看。。恭喜你成功了,如果还不能成功就检查有没有安装与ndk版本对应的android



Android系统级开发--基于NDK的so库及bionic库(未完) 这部分主要涉及到dalvik虚拟机,自己编写的jni及so库,系统的Bionic库,系统的External软件。 一. dalvik虚拟机单步调试 1. 首先编译好dalvik  2. 在用gdb启动dalvik时,创建了一个脚本来进行环境配置,脚本名grund.sh,放于Android源码根目录。下面为脚本内容:注意必须包含下述几个jar包: core ext dexopt f 阅读详情

相关推荐

详解如何使用Android Studio 进行NDK开发和调试

本篇文章主要介绍了详解如何使用Android Studio 进行NDK开发和调试,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

超简单的NDK单步调试方法

最近为了性能需求,开始搞JNI,白手起搞真心不容易。中间差点崩溃了好几次,最终总算得到一点心得。   JNI对性能的提升没有我预想中的大,对于for循环的速度提升大概在1倍左右,所以如果数量级不大的话,性能提升不会很明显 JNI编完之后,不能调试,是不是很蛋疼,不像android Java可以看出错信息。JNI crash之后,界面上表示为没有任何反应,过段时间直接退出应用,没有提示、也没有

吴工的专栏 3万+

逆向实战:从x-mini签名到RPC调用,Frida动态分析小红书加密协议

本文通过实战案例,详细拆解了小红书App的加密协议逆向分析过程。从识别x-mini签名等关键参数入手,结合静态分析与Frida动态Hook技术,追踪到核心的RPC调用入口,并最终封装成可独立调用的RPC函数,为安全研究和协议理解提供了完整的技术路径。

moss5的博客 1028

超简单的在Eclipse中NDK单步调试JNI代码代码

http://www.apkbus.com/android-124675-1-1.html 最近由于项目需要使用了NDK,唯一麻烦的就是java与c端的联调,在网上搜索了很多,都说要使用gdb或打印日志的方式,这样调试效率很低,也很不方便。 下面给大家共享一种很简单的可以在可视化界面单步调试的方法。开发环境呢,我是在官网下载的最新的集成ADT+SDK+CDT的开发工具 “adt-bundl

RandyLeonard的专栏 1637

从PHY芯片看工业网络精准时钟:IEEE 1588v2(PTP)协议实现与选型指南

本文深入解析了工业网络中IEEE 1588v2(PTP)协议的实现与PHY芯片选型要点。通过对比KG7101、RTL8211F等芯片的关键参数,揭示硬件时间戳对纳秒级时钟同步的决定性作用,并提供PTP网络设计中的拓扑布局与配置优化技巧,助力工业自动化场景实现精准时间同步。

weixin_42628688的博客 500

用MFRC522+STM32打造智能门禁:从硬件选型到云端控制全流程

本文详细介绍了基于STM32微控制器和MFRC522射频模块构建智能门禁系统的完整流程。从硬件选型、电路设计、底层驱动开发,到系统软件架构与状态机设计,并最终实现通过ESP8266模块接入云端平台(如OneNET)进行远程控制和数据可视化。项目深入探讨了MFRC522的SPI通信、卡片操作流程、天线调试以及云端MQTT集成等关键技术,为嵌入式开发者提供了一个从本地感知到云端管控的物联网项目实战参考。

raspberrypi5的博客 741

android NDK开发在本地C/C++源代码中设置断点单步调试详细教程

最近在学android NDK开发,折腾了一天,终于能够成功在ADT中设置断点单步调试本地C/C++源代码了。网上关于这方面的资料太少了,而且大都不全,并且调试过程中会出现各种各样的问题,真是很磨人,程序猿就得有耐心。把自己的调试过程记录下来,希望对需要的朋友有帮助。

遨游网络huster的专栏 2658

ENVI 5.3与IDL 8.5安装指南:从下载到激活的完整流程

本文提供了一份详细的ENVI 5.3与IDL 8.5安装教程,涵盖从获取安装包、运行主程序、安装许可证到关键文件替换的完整流程。指南重点解决了激活过程中的常见问题,并分享了个人实践经验,旨在帮助用户,特别是遥感图像处理初学者,一次性顺利完成软件部署,为后续的科研与开发工作奠定基础。

weixin_29213827的博客 545

android studio实现Jni(C/C++)单步调试方法步骤-标准配置教程

android studio实现jni(C、C++)单步调试方法步骤,配置教程,涉及gradle,jni,key以及so文件位置等,全面精细

zhangming优快云 1万+

这才是 Python 的正确玩法!用强化学习 (RL) 训练 AI 玩《王者荣耀》,胜率 90%!

大家打排位时,一定遇到过那种“意识神级、操作零失误”的对手,或者“走位呆滞、送人头”的队友。以前的“人机”是程序员写死的脚本(If 血量<20% Then 回城)。而现在的顶级 AI(如腾讯绝悟、OpenAI Five),是靠强化学习 (Reinforcement Learning)自己“左右互搏”练出来的。今天,我们不谈枯燥的数学公式,我将手把手教你用,搭建一个能玩 MOBA 游戏的 AI Agent。即使不能去 KPL 打职业,虐一下钻石局还是绰绰有余的!

BUG猿的博客 1182

大厂面经:京东大数据面试题及参考答案(3万字长文)

Kafka是一个开源的分布式流处理平台,由 LinkedIn 开发并在 2011 年贡献给 Apache 软件基金会。高吞吐量:能够处理大量的数据流,适合实时数据管道。持久性:数据存储在磁盘上,确保数据不丢失。容错性:通过数据复制提供高可用性。扩展性:支持水平扩展,易于增加更多节点。Kafka 的核心概念Topic:逻辑上的数据流,可以理解为主题。Producer:生产数据的应用程序。Consumer:消费数据的应用程序。Broker:Kafka 集群中的服务器节点。Partition。

大模型大数据攻城狮的专栏 863

Android ndk 单步调试

1.设置NDK目录  在“Android”配置项上设置下“NDK”,选择NDK后,有一个选项“NDK Location”,这里配置NDK根目录。 如下图:   2.添加NDK支持 Android项目上右键,选择“Android Tools”再添加Native的支持。 如果不需要调试,这时编译环境已经OK了 3.

每天进步一点点 1599

canoe安装完成开启之后因为VectorDeviceParams30_64.dll报错崩溃打不开...如何解决?

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值。

**My Coding Family** 1077

android NDK的单步调试

eclipse下载带adt的版,不然编译ndk项目的时候总会提示错误修改AndroidManifest.xml和default.properties的版本问题导入jni的sample,在项目上右键,android tools,添加native support选择工程属性,选择C++ build,修改build command为${NDK_ROOT}/ndk-build NDK_DEBUG=1设置好...

weixin_34015336的博客 127

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

android studio 单步调试jni,android studio实现Jni单步调试-标准配置教程

本文主要介绍在android studio下实现jni单步调试时,所需要的配置及其步骤,这些也是本人经过几天折腾慢慢实现的,先提供给大家做参考:1,配置是在mac下android studio实现的,主要是gradle版本以及build.gradle文件内容设置。记住:NDK需要事先配置好,我是另外下载的NDK包,配置教程请自己寻找。1)主程序app下的build.gradle配置:apply p...

weixin_28518991的博客 889

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

NDK环境搭建及单步调试注意点

在android下jni编程,可不止如何单步调试C/C++的代码,在网上一搜,NND各种方法,仔细一看 大本分雷同都是你抄抄他改改 大部分都是用的给予gdb和gdbserver remote调试的方式 可在windows下配置满足gdb的环境会遇到各种奇葩的问题,跟着网上的方式各种实验,我的电脑总是咋cygwin里面跑ndk-gdb的时候报这个错误,在工作闲暇之时我试了好几次都没能成功,因为这一步

IT_醉仙的专栏 694

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

android NDK开发在本地C/C++源码中设置断点单步调试具体教程

    近期在学android NDK开发,折腾了一天,最终可以成功在ADT中设置断点单步调试本地C/C++源码了。网上关于这方面的资料太少了,并且大都不全,并且调试过程中会出现各种各样的问题,真是非常磨人。程序员就得有耐心。把自己的调试过程记录下来。希望对须要的朋友有帮助。     在看本文之前,请先确保你已经成功编译了一个android NDKproject,而且可以在模拟器或者真机...

weixin_33834679的博客 218

对android&安卓下jni的单步调试

前提         由于实验需要,不得不使用单步调试。之前我一直都是绕道而行,最近几天我发现这个问题不能绕过去,最后选择了面对。这个过程是残酷的,试过了好多方法,都没有成功。最后真是花了九牛二虎之力才讲此配置成功,使用了android studio,Eclipse。在Linux上尝试过,Windows上也尝试过。希望我配置过程能让大家少走弯路,毕竟是亲身经历了的。废话不多说,切入正题。 环境

qianligaoshan的专栏 800

一个简单的查看NDK错误堆栈方法

ndk-satck 位于NDK目录下。 运行方法:$SDK_PATH/adb logcat | $NDK_PATH/ndk-stack -sym 你的工程.so文件目录 此方法可以持续在输出流中显示C/C++报错堆栈,要比AS中attach debugger效率高很多,也不用单步调试一点点寻找错误行数。 ...

時を越える笑顔 774

Android逆向-GDB调试无符号so

工具准备 下载ndk 将gdbserver push到手机,如果目标进程是64位的则push 64位的gdbserver adb push android-ndk-r14b/prebuilt/android-arm/gdbserver/gdbserver /data/local/tmp/ 编写目标程序 创建 assembler工程 // Android.mk LOCAL_PATH:= $(...

夏菠 930

Android平台从Froyo 2.2开始支持jni单步调试了!

<br />Android平台从Froyo 2.2开始支持jni单步调试了!(2010-06-04 18:12:06)转载标签:android2.2froyondk-r4debug调试杂谈分类:Android北京理工大学  20981  陈罡<br />一、写在前面的话(可以 理解为废话)<br />前段时间从网上看了google的io大会,亲眼看到了google在it技术发展和创新领域所做的工作(在此也问候一下apple 公司的美术家门,你们辛苦了)。虽然google认为未来pc上只可能存在两种程序——b

yihui8的专栏 2116

[转]好消息,android平台从froyo 2.2开始支持jni单步调试了

http://blogold.chinaunix.net/u/26691/showart_2247039.html   好消息,android平台从froyo 2.2开始支持jni单步调试了 北京理工大学  20981  陈罡一、写在前面的话 (可以理解为废话) 前 段时间从网上看了google的io大会,亲眼看到了google在it...

坚持,淡定 103
上一篇: Linux中atfork的使用
下一篇: Android NDK中C++调用Java
startFromWeb
博客等级 码龄16年 23粉丝 32原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值