linux kernel debug方法总结

本文深入探讨了Linux内核调试方法,包括printk插桩、proc文件系统查看参数、Sysrq魔法键使用及核心崩溃处理(coredump)。详细介绍了如何利用这些工具进行系统级调试,以及coredump机制的启用与应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、最常用的方法是printk插桩

2、借住proc文件系统查看相关参数:/proc/interrrupts、/proc/timer_list、/proc/cpuinfo等,或者自己创建proc文件,帮助debug;

     procfs/sysfs/debugfs:http://tinylab.org/show-the-usage-of-procfs-sysfs-debugfs/

       (1)procfs:挂载在/proc,Documentation/filesystems/proc.txt

       (2)sysfs:挂载在/sys,Documentation/filesystems/sysfs.txt

       (3)debugfs:挂载在/sys/kernel/debug/,Documentation/filesystems/debugfs.txt

3、Sysrq魔法键(Linux Magic System Request Key)

   参考Documentation/sysrq.txt文件:

  (1)开启Sysrq魔法键功能:在kernel的配置文件中加入:CONFIG_MAFIC_SYSRQ

           make menuconfig->Kernel hacking->Magic SysRq key

 (2)Enable magic sysrq key function

          cat  /proc/sys/kernel/sysrq可以查看当前打开的magic sysrq key function

          echo "number" > /proc/sys/kernel/sysrq可以打开某项magic sysrq key function,number可以是十进制也可以是十六进制

   写入的number可以是以下几个或者几个的或:

   0 - disable sysrq completely
   1 - enable all functions of sysrq
  >1 - bitmask of allowed sysrq functions (see below for detailed function
       description):
          2 =   0x2 - enable control of console logging level
          4 =   0x4 - enable control of keyboard (SAK, unraw)
          8 =   0x8 - enable debugging dumps of processes etc.
         16 =  0x10 - enable sync command
         32 =  0x20 - enable remount read-only
         64 =  0x40 - enable signalling of processes (term, kill, oom-kill)
        128 =  0x80 - allow reboot/poweroff
        256 = 0x100 - allow nicing of all RT tasks

  (3)怎么使用magic sysrq key?

       X86平台:alt + print screen + "command key"

       比较常用的:

                 alt + print screen + b: reboot system

                 alt + print screen + '0' ~ '9':设置console log level

4、core dump:主要获取应用程序崩溃时的现场信息,如程序运行时的内存、寄存器状态、堆栈指针、内存管理信息、函数调用堆栈等

  (1)ulimit -c查看core dump机制是否使能,若为0则不产生core dump

   (2)ulimit -c unlimited使能core dump

具体参考https://www.cnblogs.com/justin-y-lin/p/5598305.html

其他

1、优秀的内核调试总结网站

     https://www.cnblogs.com/justin-y-lin/p/5424529.html

      

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值