用处:
记录AppNaitive层 系统调用函数名字参数返回结果之类的
分析一些Native 执行流程还是蛮不错的。
类似如下
先准备Strace文件
先编译安装源码下的Strace文件
mmma -j6 external/strace
成功后去对应的目录找到
在使用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