dar*_*ing 5 android adb android-logcat
我正在编写一个应用程序来捕获墓碑日志。
如何在任何 Android 设备中获取墓碑日志的默认位置?即使墓碑日志尚不可用,当发生崩溃或某些事情时,它们会存储在哪里?AFAIK 这些日志保存在“/data/tombstones/”中,但这条路径在所有设备上通用吗?我是否需要从代码中的“adb shell getprop”等动态读取某些属性?
小智 13
如果您还没有 root 设备,您应该使用 bugreport adb 命令:
adb bugreport ./bugreport.zip
Run Code Online (Sandbox Code Playgroud)
在 zip 内您将拥有分析所需的一切。
为了拆卸墓碑:
获取 AOSP 源代码并按照https://source.android.com/setup/start的说明进行操作,直到出现lunch命令。
运行命令(将 tombstone_01 替换为兴趣文件):
disassemble_tombstone.py ./bugreport/FS/data/tombstones/tombstone_01
Run Code Online (Sandbox Code Playgroud)
更多工具可以调试https://source.android.com/devices/tech/debug中的 bugreport.zip
并不是说这在未来不会改变(当然,作为开源,任何供应商都可以选择修改它),但是墓碑文件是在(以前的)中实现debuggerd的engrave_tombstone()函数中编写的:tombstone.cpptombstone.c
这使用使用宏的硬编码路径:
#define TOMBSTONE_DIR "/data/tombstones"
Run Code Online (Sandbox Code Playgroud)
甚至 Android 的 Java 端也使用硬编码路径:
看来使用/data/tombstones至少可以追溯到Android 1.6 Donut 的debuggerd
| 归档时间: |
|
| 查看次数: |
14436 次 |
| 最近记录: |