安卓Strace记录系统调用

用处:

记录AppNaitive层 系统调用函数名字参数返回结果之类的
分析一些Native 执行流程还是蛮不错的。

类似如下


image.png

先准备Strace文件
先编译安装源码下的Strace文件

mmma -j6 external/strace

成功后去对应的目录找到


image.png

在使用mmma命令的时候可能会出现问题:
比如mmma未找到
需要先将执行

 .build/envsetup.sh

我编译的是安卓7.1的版本 不过在10.0上面也是可以用 ,可以直接用我编译好的

复制这段内容后打开百度网盘App,操作更方便哦。
链接:https://pan.baidu.com/s/1-tOk_-jDUiidR1aBwTkAmw 提取码:629u

使用方法:

adb push strace /data/local/tmp/
adb shell
android:/ $ chmod 777 /data/local/tmp/strace
su
android:/ # setenforce 0
adb shell strace -f -p PID

-f 标记告诉 strace 应附加到相应进程中的所有现有线程,以及之后会产生的所有新线程。
也可以不加
也可以 加上 -o strace_log.txt保存到本地

更多细节可参考
谷歌开发者文档

https://source.android.google.cn/devices/tech/debug/strace

参考:
https://mabin004.github.io/2019/06/27/Android%E4%B8%8A%E5%88%A9%E7%94%A8Strace%E8%B7%9F%E8%B8%AA%E7%B3%BB%E7%BB%9F%E8%B0%83%E7%94%A8/
https://source.android.google.cn/devices/tech/debug/strace

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容