繁体   English   中英

Android ADB Logcat在模拟器启动期间缺少一些日志

[英]Android adb logcat missing some logs during emulator booting


在模拟器启动期间尝试搜索一些日志时遇到了一个奇怪的问题。
创建模拟器时,adb设备首先以“ offline”开始,然后键入
adb logcat -v time | tee log1.txt
并且adb将保持“等待设备”状态,直到adb联机。

然后,当模拟器启动时,我键入adb logcat -v time | tee log2.txt 再次输入adb logcat -v time | tee log2.txt ,但日志文件的目标位置除外。
现在,我使用vimdiff log1.txt log2.txt来比较这两个日志,发现log1缺少许多日志,如Log_Diff

在此处输入图片说明

我不知道为什么log1.txt中的某些日志会丢失。 有任何想法吗?

PS我在SDK中使用Android 5.1-64位仿真器。

经过研究,终于找到了Android日志守护程序的根本原因。

主要问题是LogBufferElement使用CLOCK_MONOTONIC时间戳作为排序索引。

当多个LogBufferElement的时间戳相同时,LogReader可能仅转储最后一个条目。 这就是一些日志似乎丢失的原因。

AOSP Android 5.1仍然存在此问题,但Android 6.0已修复该问题。 您可以参考此补丁

顺便说一句,我也对此补丁做了一些修改。

主要原因是Android 6.0支持C ++ 11原子std库,但尚未提供Android 5.1。 一些原子API需要回滚。 (例如atomic_fetch_add_explicit())

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM