- printk是Linux内核的一个系统调用,也是内核代码调试时最常用的技巧。 printk的格式化字符串,参考:点击打开链接 对于循环中的变量,或者被多次调用的函数里面的变量, 有时候只需要打印一次,不然可能要打印很久,这个时候就用printk_once函数即可 printk是Linux内核的一个系统调用,也是内核代码调试时最常用的技巧。 printk的格式化字符串,参考:点击打开链接 对于循环中的变量,或者被多次调用的函数里面的变量, 有时候只需要打印一次,不然可能要打印很久,这个时候就用printk_once函数即可
- #define LIST_HEAD_INIT(name) { &(name), &(name) } #define LIST_HEAD(name) \ struct list_head name = LIST_HEAD_INIT(name) 这样创建双向循环链表太厉害了。 其中,... #define LIST_HEAD_INIT(name) { &(name), &(name) } #define LIST_HEAD(name) \ struct list_head name = LIST_HEAD_INIT(name) 这样创建双向循环链表太厉害了。 其中,...
- 进入ko文件所在目录 执行 arm-wrs-linux-gnu-gdb ko文件名 执行 disassemble 函数名 即可把ko中定义的函数反汇编 进入ko文件所在目录 执行 arm-wrs-linux-gnu-gdb ko文件名 执行 disassemble 函数名 即可把ko中定义的函数反汇编
- 什么是双向循环链表就不说了,学习linux的应该都有C家族的基础。 struct list_head { struct list_head *next, *prev; }; list_head不是拿来单独用的,它一般被嵌到其它结构中,如: struct str{ char c; struct list_head node;... 什么是双向循环链表就不说了,学习linux的应该都有C家族的基础。 struct list_head { struct list_head *next, *prev; }; list_head不是拿来单独用的,它一般被嵌到其它结构中,如: struct str{ char c; struct list_head node;...
- vmlinux是个elf文件,它的符号表中包含了所有内核符号。 注意linux中很多文件是没有后缀的,比如我见到的这个elf文件的文件名是“vmlinux-3.10.62”,没有后缀。 既然是elf文件那就可以用 点击打开链接 里面的方法直接查看符号表。 要想看得更仔细,可以用gdb调试工具。 (1)进入vm... vmlinux是个elf文件,它的符号表中包含了所有内核符号。 注意linux中很多文件是没有后缀的,比如我见到的这个elf文件的文件名是“vmlinux-3.10.62”,没有后缀。 既然是elf文件那就可以用 点击打开链接 里面的方法直接查看符号表。 要想看得更仔细,可以用gdb调试工具。 (1)进入vm...
- 对于调用关系比较复杂的函数,在目标函数里面调用dump_stack()可以查看目标函数的调用链 但是如果情况更复杂,涉及到很多函数指针的传递和钩子函数,那么dump_stack的作用也是有限 对于调用关系比较复杂的函数,在目标函数里面调用dump_stack()可以查看目标函数的调用链 但是如果情况更复杂,涉及到很多函数指针的传递和钩子函数,那么dump_stack的作用也是有限
- 一、系统是怎么记住我们的用户状态的? 现在我只是知道用户登录和 /etc/passwd 这个目录有关系,我们用 man 联机查看一下这个文件,具体命令 man 5 passwd <em> 查看这个文件的格式</em> /etc/passwd文件是系统能够识别的用户清单。用户... 一、系统是怎么记住我们的用户状态的? 现在我只是知道用户登录和 /etc/passwd 这个目录有关系,我们用 man 联机查看一下这个文件,具体命令 man 5 passwd <em> 查看这个文件的格式</em> /etc/passwd文件是系统能够识别的用户清单。用户...
- linux内核解压说明: 首先下载内核linux-4.12.4.tar.xz 然后下载工具7z.rar 然后用winrar解压7z.rar 然后安装7z 然后用7z解压linux-4.12.4.tar.xz得到linux-4.12.4.tar 最后用winrar解压 linux内核解压说明: 首先下载内核linux-4.12.4.tar.xz 然后下载工具7z.rar 然后用winrar解压7z.rar 然后安装7z 然后用7z解压linux-4.12.4.tar.xz得到linux-4.12.4.tar 最后用winrar解压
- 1,用户切换 (1)普通用户切换到root用户 执行su 或者 su root 或者 su - root su 和 su root是一样的 su root 和 su - root的区别在于,su root只是获取root权限,而su - root才是彻底切换到root用户 (2)root用户切换到普通用户 执行exit (... 1,用户切换 (1)普通用户切换到root用户 执行su 或者 su root 或者 su - root su 和 su root是一样的 su root 和 su - root的区别在于,su root只是获取root权限,而su - root才是彻底切换到root用户 (2)root用户切换到普通用户 执行exit (...
- /** bsearch - binary search an array of elements* @key: pointer to item being searched for* @base: pointer to first element to search* @num: number of elements* @size: s... /** bsearch - binary search an array of elements* @key: pointer to item being searched for* @base: pointer to first element to search* @num: number of elements* @size: s...
- 如果在编译的时候需要修改内核配置,那么每次编译都比较麻烦,可以采用下面的方法修改默认配置。 内核配置系统的工作流程: 首先系统自动生成默认配置文件linux-3.10.62/.config, 然后根据这个文件的内容转化成linux-3.10.62/include/generated/autoconf.h, 这个头文件完全由宏构成,执行... 如果在编译的时候需要修改内核配置,那么每次编译都比较麻烦,可以采用下面的方法修改默认配置。 内核配置系统的工作流程: 首先系统自动生成默认配置文件linux-3.10.62/.config, 然后根据这个文件的内容转化成linux-3.10.62/include/generated/autoconf.h, 这个头文件完全由宏构成,执行...
- 一、先准备一个启动盘 这一步骤是老赵为我准备的小U盘,我也不知道他咋弄的,嘿嘿???,以后我也可以帮别人安装Linux了,真的好简单哟?,他演示一遍后我就学会了??~~~ 二、安装步骤 1. 必... 一、先准备一个启动盘 这一步骤是老赵为我准备的小U盘,我也不知道他咋弄的,嘿嘿???,以后我也可以帮别人安装Linux了,真的好简单哟?,他演示一遍后我就学会了??~~~ 二、安装步骤 1. 必...
- 拥有梦想是一种智力,实现梦想是一种能力 概述 若是一个多线程的进程,由于各个线程共享一个地址空间,可以直接通过变量的形式进行通信。而进程,由于各个进程独占一个地址空间,我们需要一种通信机制来完成进程间的数据交互。本章介绍的是信号灯机制,进程间的通信机制有以下几种: 无名管道(pipe) 有名管道 (fif... 拥有梦想是一种智力,实现梦想是一种能力 概述 若是一个多线程的进程,由于各个线程共享一个地址空间,可以直接通过变量的形式进行通信。而进程,由于各个进程独占一个地址空间,我们需要一种通信机制来完成进程间的数据交互。本章介绍的是信号灯机制,进程间的通信机制有以下几种: 无名管道(pipe) 有名管道 (fif...
- printk的格式说明符 : int %d 或者 %x( 注: %d 是十进制, %x 是十六进制 ) u32 或者 unsigned int %u 或者 %x long %ld 或者 %lx unsigned long %lu 或者 %lx s64 或者 ... printk的格式说明符 : int %d 或者 %x( 注: %d 是十进制, %x 是十六进制 ) u32 或者 unsigned int %u 或者 %x long %ld 或者 %lx unsigned long %lu 或者 %lx s64 或者 ...
- kallsyms是linux的一个子系统,顾名思义,kernel_all_syms,也就是内核的所有符号。 kallsyms子系统的功能是把内核代码的所有符号(其实不是所有,没仔细研究,不过重要的都有了)抽取出来,做成一个符号表,从而方便调试。 除了调试之外,Linux程序也可以直接查找这个符号表。 在livepatch中就是通... kallsyms是linux的一个子系统,顾名思义,kernel_all_syms,也就是内核的所有符号。 kallsyms子系统的功能是把内核代码的所有符号(其实不是所有,没仔细研究,不过重要的都有了)抽取出来,做成一个符号表,从而方便调试。 除了调试之外,Linux程序也可以直接查找这个符号表。 在livepatch中就是通...
上滑加载中
推荐直播
-
HDC深度解读系列 - Serverless与MCP融合创新,构建AI应用全新智能中枢2025/08/20 周三 16:30-18:00
张昆鹏 HCDG北京核心组代表
HDC2025期间,华为云展示了Serverless与MCP融合创新的解决方案,本期访谈直播,由华为云开发者专家(HCDE)兼华为云开发者社区组织HCDG北京核心组代表张鹏先生主持,华为云PaaS服务产品部 Serverless总监Ewen为大家深度解读华为云Serverless与MCP如何融合构建AI应用全新智能中枢
回顾中 -
关于RISC-V生态发展的思考2025/09/02 周二 17:00-18:00
中国科学院计算技术研究所副所长包云岗教授
中科院包云岗老师将在本次直播中,探讨处理器生态的关键要素及其联系,分享过去几年推动RISC-V生态建设实践过程中的经验与教训。
回顾中 -
一键搞定华为云万级资源,3步轻松管理企业成本2025/09/09 周二 15:00-16:00
阿言 华为云交易产品经理
本直播重点介绍如何一键续费万级资源,3步轻松管理成本,帮助提升日常管理效率!
回顾中
热门标签