五月综合激情婷婷六月,日韩欧美国产一区不卡,他扒开我内裤强吻我下面视频 ,无套内射无矿码免费看黄,天天躁,日日躁,狠狠躁

新聞動(dòng)態(tài)

Linux內(nèi)核設(shè)備驅(qū)動(dòng)之內(nèi)核的調(diào)試技術(shù)筆記整理

發(fā)布日期:2022-03-18 17:11 | 文章來(lái)源:站長(zhǎng)之家
/******************
 * 內(nèi)核的調(diào)試技術(shù)
 ******************/

(1)內(nèi)核源代碼中的一些與調(diào)試相關(guān)的配置選項(xiàng)

內(nèi)核的配置選項(xiàng)中包含了一些與內(nèi)核調(diào)試相關(guān)的選項(xiàng),都集中在"kernel hacking"菜單中。包括:

CONFIG_DEBUG_KERNEL

使其他的調(diào)試選項(xiàng)可用,應(yīng)該選中,其本身不會(huì)打開所有的調(diào)試功能。

具體的調(diào)試選項(xiàng)說(shuō)明可參見驅(qū)動(dòng)一書,或通過menuconfig的help說(shuō)明查看。

(2)如何通過宏對(duì)printk調(diào)試語(yǔ)句進(jìn)行全局控制

通過和Makefile配合,可以在c文件中定義屬于我們自己的調(diào)試語(yǔ)句。

(3)strace的使用

strace可以跟蹤由用戶空間程序所發(fā)出的所有系統(tǒng)調(diào)用。有用的參數(shù)有:

  • -t 顯示調(diào)用發(fā)生的時(shí)間
  • -T 顯式調(diào)用所花費(fèi)的時(shí)間
  • -e 限定被跟蹤的系統(tǒng)調(diào)用類型,如"-e execve"
  • -f 跟蹤所有子進(jìn)程
  • -p 跟蹤特定進(jìn)程。如"-p 8856"
  • -o 將輸出的信息導(dǎo)入特定的文件

strace對(duì)于發(fā)現(xiàn)系統(tǒng)調(diào)用時(shí)的細(xì)微錯(cuò)誤非常有用,尤其是針對(duì)多進(jìn)程的程序,可以通過strace輸出的返回值和進(jìn)程pid獲得大量有用信息。如:

$>strace -o zht.txt -f ./process_create

(4)ltrace的使用

ltrace可以跟蹤由用戶空間程序所發(fā)出的所有動(dòng)態(tài)庫(kù)函數(shù)調(diào)用。有用的參數(shù)有:

  • -t 顯示調(diào)用發(fā)生的時(shí)間
  • -T 顯式調(diào)用所花費(fèi)的時(shí)間
  • -f 跟蹤所有子進(jìn)程
  • -p 跟蹤特定進(jìn)程
  • -o 將輸出的信息導(dǎo)入特定的文件

(5)查看oops消息

oops是內(nèi)核告知用戶有不幸發(fā)生的最常用方式。通常,發(fā)送完oops后,內(nèi)核會(huì)處于一種不穩(wěn)定狀態(tài)。

在某些情況下,oops會(huì)導(dǎo)致內(nèi)核混亂,而混亂的結(jié)果就是死機(jī),這些情況可能包括:

  • *oops發(fā)生在持有鎖的代碼中
  • *oops發(fā)生在和硬件設(shè)備通訊的過程中
  • *oops在中斷上下文中發(fā)生
  • *oops發(fā)生在idle進(jìn)程(0)或init進(jìn)程(1),因?yàn)閮?nèi)核沒有這兩個(gè)進(jìn)程沒法工作

如果oops在其他進(jìn)程運(yùn)行時(shí)發(fā)生,內(nèi)核會(huì)殺死該進(jìn)程并嘗試著繼續(xù)運(yùn)行。oops的產(chǎn)生有很多原因,包括內(nèi)存訪問越界或非法指令等。

oops包含的最重要訊息是寄存器上下文和回溯線索(call trace)可以人為引起oops,如:

if(bad_thing)
 BUG();
//或 BUG_ON(bad_thing);

可以用panic()引發(fā)更嚴(yán)重的錯(cuò)誤,調(diào)用panic()不但會(huì)打印錯(cuò)誤信息,還會(huì)掛起整個(gè)系統(tǒng)。只有在極端惡劣的情況下才會(huì)使用:

if(terrible_thing)
 panic("foo is %ld!\n", foo);

有些時(shí)候,只要打印一下棧信息就可以幫助測(cè)試,如dump_stack():

 if(!debug_check){
  printk(KERNEL_DEBUG "provide some info\n");
  dump_stack();
 }

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)本站的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接

版權(quán)聲明:本站文章來(lái)源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來(lái)源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來(lái)源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來(lái),僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。

相關(guān)文章

實(shí)時(shí)開通

自選配置、實(shí)時(shí)開通

免備案

全球線路精選!

全天候客戶服務(wù)

7x24全年不間斷在線

專屬顧問服務(wù)

1對(duì)1客戶咨詢顧問

在線
客服

在線客服:7*24小時(shí)在線

客服
熱線

400-630-3752
7*24小時(shí)客服服務(wù)熱線

關(guān)注
微信

關(guān)注官方微信
頂部