linux kernel debug方法總結

2021-08-23 14:19:47 字數 1853 閱讀 8446

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

2、借住proc檔案系統檢視相關引數:/proc/interrrupts、/proc/timer_list、/proc/cpuinfo等,或者自己建立proc檔案,幫助debug;

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)

(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

具體參考

其他

1、優秀的核心除錯總結**

ThinkPHP的redirect方法總結

首先我們大家都知道,redirect 是起到重定向的作用的乙個函式。我們需要注意在它使用的過程中的一些易錯點。下面是它的兩種使用方法 為了方便我直接從官網中複製過來了 重定向到new模組的category操作 this redirect new category array cate id 2 5,...

javascript Array陣列方法總結

1 陣列方法 1.arr.concat arr1 把arr1拼接早arr後邊 2.arr.indexof 1 判斷某個值是否在陣列中,如果有返回索引號,日過如果沒有返回 1 3.arr.join 用指定的拼接陣列為字串 2 必須記住的四個陣列方法 1.push 最後一位追加。2.pop 刪除最後一位...

Android Studio 檢視總方法數

背景 由於android方法數超過65535就需要分包,需要multidex,有些機器對multidex支援不好導致啟動特別慢需要多花費3 10s時間,看下工程方法數具體是多少 classpath com.getkeepsafe.dexcount dexcount gradle plugin 0.6...