如何分析 Linux user space's segmentation fault 2022-11-16 Linux 用户态码字有时会遇到如下错误:Segmentation fault (core dumped) ..当你没头绪时,或许可以借用工具来定位。这个错误中 core dumped 提示生成了一个 core 文件。那它在哪了?如何分析? 具体来看,OS 是 Ubuntu 18.04。Step 1. check core 文件大小tj@u1804:~/code...阅读全文
Kernel Panic实例分析三 : Unable to handle kernel paging request 2020-11-19 QC armv7平台kernel 4.x出现的死机问题,一开始很随机以为是DDR硬件问题,直到后面死机越來越多,还出现过pc一样的现场,让人不得不怀疑是SW issue,同步提给QC看,看QC的答复就是用tracer32来定位的,下来温习了下armv7,完全可以用red hat的crash工具结合反汇编和源码分析定位,对小厂算是节约license成本了?我们先看死机现场:...阅读全文
Kernel Panic实例分析二 : Null pointer 2020-11-04 | 评论 (5) QCOM安卓armv7 smp平台, kernel 4.x。死机时dmesg:[ 4.790798] Unable to handle kernel NULL pointer dereference at virtual address 000001e0 [ 4.790803] pgd = edfd65c2 [ 4.790807] [000001e0] ...阅读全文
了解Android 10 DSU 2020-10-12 DSU(Dynamic System Updates)是Android 10引入的一个feature。先了解下GSI。GSIGSI(Generic System Image)看字面就是通用的系统镜像了,就是Google官方Android,没有设备制造商(如某米)的自定义修改。Android 9开始就能用了,是for app开发。官方给的说明是:The GSI projec...阅读全文
Linux Kernel WARN()&BUG(), Oops&Panic, Tainted分析 2020-07-25 稳定性范畴, 参考5.x kernel。kernel OopsOops指的就是内核的不正确行为,比如对驱动来说:static int i82092aa_pci_probe(struct pci_dev *dev, const struct pci_device_id *id) { unsigned...阅读全文
安卓QCOM平台子系统复位原因记录分析 2020-07-04 参考LA msm-4.14 kernel,先看下在drivers/soc/qcom/subsys-pil-tz.c里记录失败原因的接口:static void log_failure_reason(const struct pil_tz_data *d) { size_t size; char *smem_reason, reason[MAX_SSR_RE...阅读全文
Android如何在No command下进入recovery 2020-04-07 一般我们用adb reboot recovery或从bootloader按键进入recovery时,会出现一个倒地小机器人,下方提示No command。我们来看下为啥会这样以及此场景下如何进入recovery menu。ok, 让我们先check No command,以下参考10.0:const GRSurface* ScreenRecoveryUI::GetCurr...阅读全文
Android AB retry count分析 2020-01-16 A/B系统是Android设计给OTA用,前面有文章分析过,只不过是LK下。现在看下QCOM UEFI下对A/B retry count是否递减的逻辑。EFI_STATUS FindBootableSlot (Slot *BootableSlot) { Unbootable = (BootEntry->PartEntry.Attributes & PAR...阅读全文