青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

小默

【zz】linux內核驅動模塊的調試技術總結

原文:http://www.cnitblog.com/textbox/articles/61881.html

這些天來弄了一個簡單的驅動模塊,后發現系統只要一卸載模塊系統就會死掉。到底是那里出了錯?
如果你只是通過printk來調試, 而沒有其他的方法去檢測錯誤的。
也是這個原因促使我寫驅動模塊調試技術相關技術。要學好一個編程語言工具首先調試技術也一定同步。
(如果linux 也能做出一個類似windows 下的 Windbg 或 Soft-ICE 那就不必那么麻煩了)
這篇文章不是一氣呵成的,只是我在學習內核調試的一個筆記。

調試技術有以下幾種:

  1.用打印調試
  2.文件保存調試信息
  3.truss、strace和ltrace命令輸出信息來調試
  4.調試器來調試

對于第一種 “用打印調試 ”
利用函數或命令把相應的信息輸出到console或文件內
這些函數有 printk , STOCLINUX 等等

prink 的一般用法是定義成一個公用的宏

#undef PDEBUG             /* undef it, just in case */
#ifdef SCULL_DEBUG
   #ifdef __KERNEL__
     
/* This one if debugging is on, and kernel space */
       #define PDEBUG(fmt, args) printk( KERN_DEBUG 
"scull: " fmt, ## args)
   #
else
     
/* This one for user space */
       #define PDEBUG(fmt, args) fprintf(stderr, fmt, ## args)
   #endif
#else
   #define PDEBUG(fmt, args) 
/* not debugging: nothing */
#endif

#undef PDEBUGG
#define PDEBUGG(fmt, args/* nothing: it's a placeholder */
在makefile 里面添加
 
DEBUG = y
# Add your debugging flag (or not) to CFLAGS
ifeq ($(DEBUG),y)
DEBFLAGS 
= ---D SCULL_DEBUG # "-O" is needed to expand inlines
else
DEBFLAGS 
= -O2
endif
CFLAGS 
+= $(DEBFLAGS)

這樣定義的宏可以在內核模式和用戶模式在 Debug 版本下輸出調試信息,而在release版本編譯時候去掉調試輸出的函數代碼。
并可以通過設置makefile就可以是否輸出調試信息,缺點是修改makefile還需要重新編譯一次
想法,如果能給模塊一個配置文件 (*.conf)那就修改配置文件就不用重新編譯,只需要卸載安裝模塊就實現調試信息的輸出,
缺點是影響系統的性能。


對於第二種 “文件保存調試信息 ”
內核模式下可以使用 /proc文件系統 或者 seq_file 來記錄調試信息。創建自己的/proc文件系統的文件 或 seq_file 文件 并記錄相應的調試信息,用于查詢。
seq_file 操作可以參考 http://blog.chinaunix.net/u/12313/showart_172686.html;


還有 用ioctl 命令。這些命令可以從驅動模塊拷貝相關的數據結構到用戶空間, 用于查詢它們,缺點是需要用另外的程序來發出和顯示調試信息,并增加模塊的體積 。優點是比/proc塊

oops消息 ,通常消息發生于引用了 NULL 指針或者使用其他不正確指針值。


調試器

 使用 gdb
   優點:比較適用于用戶模式下調試程序,linux自帶無需重新安裝
   缺點:不適合內核模塊的調試(也可以內核調試,利用它的遠程調試功能。需要兩臺電腦)
 
  主要步驟是
  1.執行  #gdb program
  2.執行到mian():#start
  3.設置斷點
  4.調試

 具體命令使用:  參考 http://baike.baidu.com/view/639266.htm



 使用kdb
 優點:不需要遠程調試
 缺點:不支持源代碼級別上的調試只能使用匯編級別的調試,需要重新下載安裝包,安裝需要重新編譯內核激活kdb


 使用 kgdb
 優點:可以對內核進行全方面的調試  (感覺有點類似 windows 下的WinDdg)
 缺點:需要兩臺電腦,配置復雜 ,更新慢,到目前位置最高只能支持2.6.15.5 版本的內核


 使用Linux Trace Toolkit



 使用Dynamic Probes ( DProbes )

 
使用 SkyEye
 優點:ARM Simulator很好地結合在了一起 主要用于嵌入式驅動開發領域
 缺點:配置文件設置復雜

使用 UML (虛擬機類似)
優點:UML適合于調試那些處理與硬件無關的驅動程序
缺點:UML并不適合于調試那些處理實際硬件的驅動程序

使用 JTAG- based debuggers
優點:The JTAG (Joint Test Action Group) based debuggers are hardware assisted and powerful tools
缺點: but are expensive.

posted on 2010-04-05 16:18 小默 閱讀(1182) 評論(0)  編輯 收藏 引用 所屬分類: Linux

導航

統計

留言簿(13)

隨筆分類(287)

隨筆檔案(289)

漏洞

搜索

積分與排名

最新評論

閱讀排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲成人在线视频播放| 欧美一区二区三区四区在线观看地址| 亚洲深夜福利| 国产精品99久久久久久久女警| 99精品欧美一区二区三区| 亚洲精品一区二区三区蜜桃久| 亚洲精选91| 香蕉久久久久久久av网站| 久久精品国产第一区二区三区| 久久国产一区二区| 欧美激情精品久久久久久变态| 亚洲欧洲视频| 一本一本久久a久久精品综合妖精 一本一本久久a久久精品综合麻豆 | 国产精品永久免费在线| 国产视频一区免费看| 亚洲无毛电影| 在线日韩中文| 99re6这里只有精品| 欧美一乱一性一交一视频| 久久深夜福利免费观看| 亚洲精品在线免费| 久久精品日韩一区二区三区| 欧美精品一区二区视频| 国产欧美在线| 亚洲视频每日更新| 欧美 日韩 国产 一区| 最新国产成人在线观看| 性做久久久久久久久| 欧美精品福利视频| 国内精品久久久久久 | 激情综合激情| 亚洲午夜久久久久久久久电影网| 裸体歌舞表演一区二区| 亚洲婷婷综合久久一本伊一区| 免费成年人欧美视频| 国产亚洲精品7777| 亚洲欧美日韩精品一区二区| 亚洲国产精品黑人久久久| 亚洲欧美自拍偷拍| 国产精品女人毛片| 亚洲一区二区三区午夜| 亚洲欧洲偷拍精品| 美女啪啪无遮挡免费久久网站| 国产欧美一二三区| 欧美一级在线亚洲天堂| 亚洲私人影院在线观看| 欧美伦理91i| 日韩网站在线观看| 亚洲激情av| 欧美va天堂va视频va在线| 在线国产精品一区| 乱中年女人伦av一区二区| 欧美一区二区三区啪啪| 国产亚洲精品久久久久久| 欧美一区二区在线| 午夜精彩视频在线观看不卡| 国产九九视频一区二区三区| 欧美一区二区三区在线看 | 欧美日韩另类在线| a4yy欧美一区二区三区| 亚洲精品一区二区三区樱花| 欧美电影免费观看高清| 亚洲精品乱码久久久久久日本蜜臀| 欧美成人免费在线视频| 美女免费视频一区| 亚洲免费观看视频| 一本久道久久综合婷婷鲸鱼| 欧美视频免费在线观看| 香蕉久久国产| 午夜一区二区三区不卡视频| 久久疯狂做爰流白浆xx| 亚洲字幕在线观看| 国产乱人伦精品一区二区| 亚洲欧美三级在线| 午夜在线一区| 亚洲福利电影| 亚洲清纯自拍| 国产精品高清网站| 久久成人久久爱| 久久婷婷国产综合国色天香| 亚洲人成在线观看一区二区| 亚洲精选久久| 国产日韩欧美成人| 久久一区二区三区超碰国产精品| 媚黑女一区二区| 一本大道久久a久久精二百| 亚洲影院免费| 亚洲国产一区二区视频| 99这里只有精品| 国产亚洲一区精品| 亚洲精品国产视频| 国产欧美一区二区精品仙草咪| 美女脱光内衣内裤视频久久影院| 欧美另类99xxxxx| 久久伊人精品天天| 国产精品黄色在线观看| 欧美不卡视频一区发布| 欧美性大战久久久久久久| 美女视频黄 久久| 国产精品久久影院| 亚洲激情一区二区| 国产亚洲福利一区| 亚洲理论在线| ●精品国产综合乱码久久久久| 日韩一区二区免费看| 国内精品视频在线观看| 一本久久a久久免费精品不卡| 在线高清一区| 午夜一区二区三区不卡视频| 中日韩视频在线观看| 免费观看亚洲视频大全| 久久久久**毛片大全| 国产精品久久久久久久久久妞妞| 欧美暴力喷水在线| 国内自拍一区| 欧美亚洲日本国产| 欧美一区二区三区免费看| 欧美日韩国产不卡| 亚洲国产欧美一区二区三区同亚洲| 国产三区精品| 亚洲欧美日韩第一区| 亚洲女人av| 国产精品a级| 99视频精品全国免费| 99精品欧美一区| 欧美精品在线观看91| 91久久黄色| 99国产精品久久久久老师| 欧美大片在线观看一区二区| 欧美二区在线观看| 禁断一区二区三区在线| 久久国产一二区| 久久午夜国产精品| 激情综合在线| 国产午夜精品麻豆| 久久网站免费| 国产欧美日韩精品在线| 日韩一级不卡| 亚洲视频第一页| 欧美特黄一级| 亚洲一区二区三区777| 亚洲欧美日韩第一区| 欧美午夜一区二区三区免费大片| 日韩一级欧洲| 午夜精品影院在线观看| 国产麻豆成人精品| 久久精品亚洲精品| 免费一级欧美在线大片| 亚洲精品一区二区在线| 欧美日韩日本国产亚洲在线| 亚洲一级在线| 久久国内精品自在自线400部| 国产视频亚洲精品| 模特精品裸拍一区| 一本在线高清不卡dvd| 久久国产欧美| 亚洲国产另类久久精品| 欧美日本在线看| 在线视频日本亚洲性| 久久久精品欧美丰满| 亚洲国产精品久久久久婷婷老年 | 欧美视频中文在线看| 亚洲欧美日本在线| 欧美高清视频在线观看| 一区二区激情视频| 国产欧美日韩伦理| 免费永久网站黄欧美| 中日韩高清电影网| 巨胸喷奶水www久久久免费动漫| 亚洲国产精品va| 欧美日韩三级| 久久久最新网址| 在线亚洲精品| 久久天堂av综合合色| 夜夜嗨av色一区二区不卡| 国产午夜亚洲精品理论片色戒| 久久综合中文字幕| 国产精品99久久久久久有的能看 | 在线一区视频| 欧美成人中文| 性色av一区二区三区| 亚洲国产小视频在线观看| 国产精品伦子伦免费视频| 欧美大片在线观看| 久久久久在线| 午夜精品久久久久久99热软件| 亚洲精选久久| 亚洲第一精品夜夜躁人人躁| 欧美呦呦网站| 亚洲午夜av在线| 亚洲精品女人| 亚洲黄网站在线观看| 国产欧美日韩精品专区| 欧美视频一区二区三区四区| 久久性色av| 西西人体一区二区| 99国产精品视频免费观看一公开| 欧美不卡高清| 久久这里有精品15一区二区三区| 亚洲欧美日韩综合aⅴ视频|