Linux内核中container_of宏的详细解释

Linux内核中container_of宏的详细解释

在之前的文章中,我们讨论了在移植和使用Linux内核的通用链表时,如何避免重复造轮子,并提供了完整的代码实现。今天,我们将深入分析内核是如何求解结构体成员变量的地址的,尤其是在计算结构体偏移时巧妙地使用了container_of宏定义。

扒一扒ELF文件

扒一扒ELF文件

ELF文件(Executable Linkable Format)是一种文件存储格式。Linux下的目标文件和可执行文件都按照该格式进行存储,有必要做个总结。

valgrind基本功能介绍、基础使用方法说明

valgrind基本功能介绍、基础使用方法说明

Valgrind由内核(Core)和基于内核的其他调试工具组成。内核是Valgrind的核心部分,类似于一个框架,它模拟了一个CPU环境,并为其他工具提供服务。其他工具可以看作是插件,利用内核提供的服务来完成各种特定的内存调试任务。

使用uboot引导应用程序

使用uboot引导应用程序

uboot默认支持执行应用程序,就像它引导内核一样。我们可以自己编写一个应用程序,并让uboot在启动时进行引导。

内核转储的设置

内核转储的设置

当程序在运行过程中发生异常终止或崩溃时,操作系统会将程序当前的内存状态记录并保存在一个文件中,这种行为被称为核心转储(Core Dump)。

使用动态输出打印内核的DEBUG信息

使用动态输出打印内核的DEBUG信息

printk()是许多嵌入式开发人员喜欢使用的一种调试方法。然而,使用printk()进行调试时,每次都需要重新编译内核,这非常不方便。为了解决这个问题,我们可以使用动态输出来方便地打印内核的调试信息,而无需重新编译内核。

【调试】sysRq键使用方法

【调试】sysRq键使用方法

SysRq键是一个非常特殊的键,只要内核没有完全崩溃,它就可以触发内核对其输入的响应。使用SysRq键的组合键,可以收集系统的各种运行信息,包括内存使用情况、CPU任务处理状况、进程的运行状态等。

【ARM架构】armv8 系统安全概述

【ARM架构】armv8 系统安全概述

一个安全或可信的操作系统可以保护系统中的敏感信息,例如用户存储的密码、信用卡信息等,免受攻击。

【C/C++】为什么不都用memmove代替memcpy

【C/C++】为什么不都用memmove代替memcpy

memmove相比memcpy增加了内存重叠的判断,更加安全,效率只是差了那么一丢丢, 为什么经常看见memcpy, 很少看见memmove 呢 ?是不是因为memcpy语义上说明了两段内存是不重叠的所以有些场景使用memcpy 更合适 ?

单片机main()函数退出之后,程序会跑去哪里?

单片机main()函数退出之后,程序会跑去哪里?

对于嵌入式系统而言,如果没有运行即时操作系统(RTOS),在程序开发中,主函数main()需要通过某种机制使其一直持续运行下去,没有终点。要退出main函数,具体需要执行什么操作取决于所使用的C语言编译器。

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部