![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
LinuxC/C++
文章平均质量分 51
C/C++笔记总结
的神等等
这个作者很懒,什么都没留下…
展开
-
TombStone文件如何生成
开发者在分析系统稳定性的时候通常需要知道进程发生异常时候的调用栈来分析发生异常时进程到底正在做什么。这样才能根据进程所处场景或者调用栈、寄存器信息分析异常发生的原因。而在Android中,当Native进程发生崩溃时,会在/data/tombstones/目录下生成tombstones_xxx的文件,里面记录了某一个进程在发生崩溃时候的所有信息,包括调用栈、寄存器信息等等。这极大的有助于开发者来定位问题,本篇文章来分析下TombStone文件到底是如何生成的,里面都记录了哪些信息。首先我们要知道,Nati原创 2021-04-11 14:55:23 · 2030 阅读 · 0 评论 -
ARM64架构下memcpy实现原理
memcpy函数大家再熟悉不过了,是用来拷贝内存中的内容到目标地址所处的内存中。kernel中的函数实现是用汇编来写的,而其他的拷贝函数也有引用到此实现方式。本篇主要解读kernel中是如何实现的,代码是kernel 5.4版本源码。/* * Copy a buffer from src to dest (alignment handled by the hardware) * * Parameters: * x0 - dest * x1 - src * x2 - n * Returns:原创 2021-03-27 16:06:21 · 2393 阅读 · 2 评论 -
高通RAM dump解析简介
ramdump是指某个时刻系统或者子系统发生crash等异常,系统将内存中的数据通过一定的方式保存下来,相当于一个系统内存快照,用以开发者离线分析系统异常问题。解析ramdump肯定需要先获取对应的ramdump信息,即上面提到的系统内存快照,各厂商有自己获取的方式,这里不再详细赘述。拿到ramdump信息后还需要对应kernel版本的vmlinux,类似于addr2line,需要对应的符号文件才能将对应的信息获取出来。此时拿到的信息是一些bin文件,无法直接查看,所以需要通过https://sourc原创 2021-01-16 17:07:40 · 12039 阅读 · 0 评论 -
i++和++i运行方式
我们都知道++在C语言中是自增的意思,会对原值增加1。但是偶然一次看到一个题目是这样的:m=0;m=m++;m结果是多少?上面的结果不是1,而是0, 这确实有点出乎意料。于是写了下面的程序来确认下;#include <stdio.h>int main(int argc, char **argv){ int m = 0; m++; printf("m is %d\n", m); ++m; printf("m is %d\n", m);原创 2020-06-14 16:51:41 · 400 阅读 · 0 评论 -
C指针小试
经常会看到有这样的笔试题目——再函数中动态申请内存,通过传参指针返回后使用。比如下面的片段,最终输出了hello world! void getMemery(char** p, int size) { *p=(char *) malloc(size);}void testFunction() { char* str = NULL; getMeme...原创 2020-04-12 21:17:10 · 81 阅读 · 0 评论