
stability
文章平均质量分 87
android & linux stability
Youth cowboy
专注于系统快稳省领域
展开
-
Android GWP-Asan机制详解
基本用途:GWP-ASan是一种原生内存分配器功能,在内存分配时额外记录一些信息,用于检测DOUBLE_FREE、USE_AFTER_FREE、INVALID_FREE、BUFFER_OVERFLOW、BUFFER_UNDERFLOW五种内存错误问题。原创 2024-07-19 19:54:32 · 2567 阅读 · 3 评论 -
Linux CoreDump机制详解
当用户程序运行过程中发生异常, 程序异常退出时, 由Linux内核把程序当前的内存状态信息(运行时的内存,寄存器状态,堆栈指针,各种函数调用堆栈信息等)存储在一个core文件中, 这个过程称作coredump.原创 2024-07-12 10:42:41 · 4211 阅读 · 3 评论 -
Linux kfence机制详解
kfence是Linux kernel中用于检测内存错误的工具,如检测out-of-bounds、mem-corruption、use-after-free、invaild-free等,利用该工具尽早发现项目中存在的内存错误问题,帮助研发人员快速定位分析这些问题。原创 2024-07-02 20:09:05 · 1515 阅读 · 4 评论 -
Android HWASAN机制详解
HWASAN是在ASAN的基础上做了拓展,因此在介绍HWASAN之前先了解下ASAN.原创 2024-07-02 19:49:17 · 2344 阅读 · 1 评论 -
Linux KASAN使用与实现原理
类型影子内存标记检测类型buddy初始化:0释放:0xffslubTBDTBDglobal初始化:0xf9stackTBDTBD。原创 2024-04-23 16:32:54 · 2249 阅读 · 7 评论 -
Android malloc_debug实现原理及使用
2)设置 __libc_globals 对象中的 libc_globals.default_dispatch_table 和 current_dispatch_table 指向 malloc_dispatch_table,以后在 malloc 库函数里都会通过 GetDispatchTable(),这个函数就是返回的 current_dispatch_table 指针;MAX_FRAMES 表示被抓取的 frames 的数量,如果设为0, 表示在分配空间被释放时,不会抓取任何调用栈。原创 2024-04-23 10:55:46 · 2248 阅读 · 5 评论 -
Kernel panic流程及处理
kernel panic主要包括die和panic两部分流程。原创 2024-02-20 16:42:41 · 1543 阅读 · 2 评论 -
快稳省领域分析工具总结
ftrace、perf tool、simpleperf、systrace、perfetto、traceview、ebpf、cma tool、MAT、iotop\iostat\atop\top\strace\vmstat、QT tool、systemtap、Dtrace等。原创 2024-02-19 15:20:59 · 460 阅读 · 1 评论 -
MTE - 堆内存检测原理
MTE 堆内存检测的硬件(指令)基础和 MTE 栈内存检测是一样的~不同的是 MTE 栈内存检测的用户空间实现是编译器(llvm)完成的~而 MTE 堆内存检测的用户空间实现则是由内存分配器(scudo,llvm 的运行时库)完成的(of course,如果不使用scudo而使用其他的内存分配器,应用程序也可以通过调用 MTE 指令或者封装的 MTE 相关 api 来实现堆内存检测,只是会比较麻烦,一般不会这么做 ~~~)原创 2024-01-18 14:07:04 · 1270 阅读 · 1 评论 -
MTE - 栈内存检测原理
MTE 属于 ARMv8.5 指令集的拓展功能~ 即 memory tag extension~要使能MTE功能,需要有支持 MTE 的硬件,kernel,以及编译器和libc(定制malloc等堆内存分配方法)~其中,支持MTE的硬件和kernel是必要条件~支持MTE的编译器是实现 stack 检测的必要条件~支持MTE的libc是实现 heap 检测的必要条件~原创 2024-01-18 13:45:54 · 2017 阅读 · 4 评论 -
Android WatchDog机制
Android系统中,有硬件WatchDog用于定时检测关键硬件是否正常工作,类似地,在framework层有一个软件WatchDog用于定期检测关键系统服务是否发生死锁事件、Handler线程消息处理是否超时。原创 2024-01-10 15:50:26 · 1077 阅读 · 0 评论 -
Android Native crash触发原理及处理
当程序执行以下操作,会触发native crash:1)程序自己调用 abort() 函数触发,用于表示出现严重的错误或异常情况,需要终止程序执行2)内存对齐错误或非法地址访问3)零除错误(除数为零),浮点溢出或下溢出等4)使用了非法的机器指令或指令参数不当而导致5)进程试图访问不允许访问的内存地址,例如访问已释放的内存,或者栈溢出等6)常见于协处理器栈错误或FPU错误7)进程试图执行未定义或不支持的系统调用8)程序的特定位置设置断点时会触发SIGTRAP信号。原创 2024-01-10 15:43:33 · 2283 阅读 · 4 评论