
日常笔记
我是一粒小石子
大海边上的小石子
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
学习记录
学习记录原创 2022-12-20 11:11:30 · 142 阅读 · 0 评论 -
devmem 没有权限读地址
CONFIG_STRICT_DEVMEM原创 2022-11-14 10:03:04 · 718 阅读 · 0 评论 -
spin lock irqrestore中为什么先开中断后开抢占
这里写自定义目录标题如果先开抢占欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入如果先开抢占如果先开了抢占,那么就会产生一个调度点,此时如果一个高优先级的任务得到调度,并且很快执行完毕,进入原创 2020-12-27 22:18:48 · 375 阅读 · 0 评论 -
segment fault时如何生成core文件,从而定位哪里double free
(1)ulimit -c 1024(2)执行a.out会在当前目录下生成core文件(3)gdb ./a.out ./core按下bt,可以看到哪行代码double free了原创 2020-12-09 21:37:43 · 361 阅读 · 0 评论 -
double free or corruption (!prev)定位方法
malloc (0x100000 - n)大小的内存,memset时传入大小为0x100000,报double free or corruption (!prev),定位方法如下:第一步:valgrind --lead-check=full --show-leak-kinds=all --undef-value-errors=no --log-file=log a.out第二步:然后查看生成的log文件第三步:从log文件中找到Invalid read of size 这样的字样,可以看到哪行有原创 2020-12-09 21:16:48 · 6455 阅读 · 1 评论 -
signal_pending 为1,但是current->pending.signal.sig[0]却为0
此种场景是按下ctrl c后,在close函数中有次现象原创 2020-12-08 21:43:55 · 200 阅读 · 0 评论 -
make-kpkg命令--linux内核头文件生成过程并填坑
前言编译Linux驱动,内核头文件是必不可少的,这里根据开发经验,介绍生成linux headers的过程.操作步骤( 在root帐号,以ARM64平台为例):1. 解压内核源码2. 执行make my_defconfig 生成.config,这里我把交叉编译工具配置好了,也就是CONFIG_CROSS_COMPILE,同时CONFIG_ARM64=y3.执行make -j32 编译内核4.执行make-kpkg --initrd --cross-compile aarch6..原创 2020-10-04 16:53:17 · 4068 阅读 · 0 评论 -
nm命令学习-看不到static的函数符号表原因分析
https://blog.youkuaiyun.com/lgfun/article/details/103600880?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task问题:nm -A -l a.out出现如下信息:0000000020 r func...原创 2020-03-27 10:05:42 · 1601 阅读 · 0 评论 -
使用CMakelist将多个静态库编译成动态库时找不到符号
https://www.cnblogs.com/zl1991/p/9437192.htmlhttps://cmake.org/pipermail/cmake/2016-May/063509.html根据以上两篇文章可以找到答案,但本文倾向于定位方法。前置知识:(1)ld 的链接规则是 "未定义的符号往后找"(2)链接静态库时,只会将编译时用到的符号添加进动态库,有些符号...原创 2020-03-26 00:52:51 · 5792 阅读 · 1 评论 -
时钟中断处理完成后,如何进行抢占调度的?
当系统收到中断后,会通过中断向量表跳转到中断处理函数中。例如执行到el1_irq,会执行irq_handler。当从irq_handler返回后,中断处理函数就完成了,此时产生一个抢占点,首先ldr w24, [tsk, #TSK_TI_PREEMPT]读取当前进程struct task_struct中的premmpt_count值,如果为0表示可以抢占调度,不为0的话,说明已经被抢占了,不能...原创 2020-03-14 23:55:22 · 664 阅读 · 0 评论