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阻塞狀態的任務

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM