嵌入式Linux的调试技术

发表于:2016-7-05 10:30

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:十四丶    来源:51Testing软件测试网采编

  打印内核调试信息:printk
  Printk函数运行在内核空间,printf函数运行在用户空间。Linux内核程序只能使用printk函数输出调试信息。
  防止printk函数降低linux驱动性能
  Linux驱动只在开发阶段使用printk函数输出消息。正式发布linux驱动是将可能影响性能的printk函数去掉。利用c语言中的编译指令(#if, #else, #endif等)
  通过虚拟文件系统(/proc)进行数据交互
  /proc经常被用来作为内核空间与用户控件进行数据交互的工具。/proc文件系统的行为方式与设备文件系统/dev类似。/proc并不是真正的文件系统,而是内存映射。
  Proc_mkdir
  name:虚拟目录名称
  parent:虚拟目录父目录的proc_dir_entry结构体指针
  create_proc_entry
  name:虚拟文件名称
  mode:虚拟文件的访问权限,等同于Linux问价的访问权限
  parent:虚拟文件父目录的proc_dir_entry结构体指针。
  Create_proc_read_entry
  name:虚拟文件名称
  mode:虚拟文件的访问权限,等同于Linux问价访问权限。
  base:虚拟文件父目录的proc_dir_entry结构体指针。
  read_proc:处理读动作的函数指针。
  data:用于虚拟文件系统的数据。
  remove_proc_entry
  name:要删除的虚拟文件的名称
  parent:虚拟文件父目录的proc_dir_entry结构体指针
  调试工具
  这些工具可以逐行跟踪程序代码
  1.用gdb调试用户空间程序
  跟踪调试用户空间的程序。只可在pc上进行测试
  2.用gdbserver远程调试用户空间程序
  测试运行在开发板、手机或者android模拟器上的程序。可运行在arm架构上的服务端程序
  3.用kgdb远程调试内核程序
  提供类似printk函数的日志输出功能,允许开发人员直接在pc上通过GDB连接目标设备。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号