当前位置: 首页 > article >正文

双向链表、内核链表和gdb(20250208)

单向链表

节点 = 数据域 + 指针域(后继节点)

双向链表

相比于单项指针,双向指针存有前驱节点的地址,使链表的灵活性更高。

内核链表

在内核中

  • offsetof:获取结构体某个成员到结构体开头的偏移量
  • container_of:根据结构体成员的地址,获取结构体首地址双向有头
  • 循环链表(C语言可以在非内核环境实现非循环内核链表)
  • 不同点:不再将数据存放在链表结点中,而是将结点作为结构体的成员存在
  • 优势:链表作为存储数据的载体,可以存储任意类型的数据。

gdb调试

  • 用于定位段错误和查找逻辑错误
gcc main.c -g
gdb ./a.out
  • 用法:调试时添加-g选项,并gdb可执行程序
  • gdb常用命令
l : 查看源代码
b + 行号 : 下断点
r : 运行程序
s : 跟进到函数
n : 单步执行
p + 变量名 : 查看变量的值
where : 查看段错误是的栈信息


http://www.kler.cn/a/538392.html

相关文章:

  • STM32 CUBE Can调试
  • Spring Boot整合MQTT
  • 《ARM64体系结构编程与实践》学习笔记(四)
  • SQL中 的exists用法
  • 前端实现 GIF 图片循环播放
  • 树莓派5添加摄像头 在C++下调用opencv
  • Linux之kernel(1)系统基础理论(1)
  • FreeRTOS的事件组
  • 协议-RK-Gstreamer
  • 07苍穹外卖之redis缓存商品、购物车(redis案例缓存实现)
  • 【Windows】PowerShell 缓存区大小调节
  • LMM-3DP:集成 LMM 规划器和 3D 技能策略实现可泛化操作
  • 深入剖析 JVM 垃圾收集器之 CMS 和 G1
  • Golang:精通sync/atomic 包的Atomic 操作
  • 本地计算机上的MySQL80服务启动后停止某些服务在未由其他服务或程序使用时将自动停止(不需要清除数据)
  • 今日写题work
  • Https握手过程 (面试题)
  • PMP–一、二、三模–分类–13.干系人管理
  • Python关键字全解析与实例应用
  • python Excel 表读取合并单元格以及清除空格符
  • #渗透测试#批量漏洞挖掘#微商城系统 goods SQL注入漏洞
  • JUnit 5 中获取测试类、测试方法及属性的注解
  • DeepSeek与Vue.js组件开发:解锁AI与前端开发的融合密码
  • 算法兵法全略(译文)
  • 低代码系统-插件功能分析( 某道云)
  • 线性dp-安全序列