首页 » 嵌入式笔记 » 正文

Linux内核调试方法总结之sysrq

sysrq

【用途】

Sysrq被称为”魔术组合键”, 是内建于Linux内核的调试工具。只要内核没有完全锁住,不管内核在做什么事情,使用这些组合键都可以搜集包括系统内存使用、CPU任务处理、进程运行状态等系统运行信息。

【原理】【内核帮助文档kernel/Documentation/sysrq.txt】

首先,内核配置选项中要使能CONFIG_MAGIC_SYSRQ选项,这样系统启动之后,会生成/proc/sysrq-trigger节点用于调试。
其次,可以在/etc/sysctl.conf中设置kernel.sysrq=1默认使能sysq功能。也可以通过写/proc/sys/kernel/sysrq节点动态使能sysrq功能。写入不同的值使能不同的功能:

0 disable sysrq completely
1 enable all functions of sysrq
2 enable control of console logging level
4 enable control of keyboard (SAK, unraw)
8 enable debugging dumps of processes etc.
16 enable sync command
32 enable remount read-only
64 enable signalling of processes (term, kill, oom-kill)
128 allow reboot/poweroff
256 allow nicing of all RT tasks

【使用说明】

  • #echo m > /proc/sysrq-trigger 导出内存分配信息
  • #echo t > /proc/sysrq-trigger 导出当前任务状态信息
  • #echo p > /proc/sysrq-trigger 导出当前CPU寄存器和标志位信息
  • #echo c > /proc/sysrq-trigger 产生空指针panic事件,人为导致系统崩溃
  • #echo s > /proc/sysrq-trigger 即时同步所有挂载的文件系统
  • #echo u > /proc/sysrq-trigger 即时重新挂载所有的文件系统为只读
  • #echo w > /proc/sysrq-trigger转储处于uninterruptable阻塞状态的任务

转载自:https://www.cnblogs.com/justin-y-lin/p/5424555.html

发表评论