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

小默

【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久久久二8| 欧美一区二区在线观看| 亚洲男人的天堂在线aⅴ视频| 亚洲美女福利视频网站| 亚洲精品久久久久久久久久久| 亚洲激情图片小说视频| 日韩午夜在线播放| 午夜视频在线观看一区二区| 久久成人国产| 欧美福利在线观看| 欧美日韩免费一区二区三区视频| 国产精品hd| 激情欧美国产欧美| 日韩午夜在线观看视频| 欧美一区2区三区4区公司二百| 久久精品国产第一区二区三区| 免费日韩av| 亚洲网站在线看| 久久免费视频这里只有精品| 亚洲国产欧美一区二区三区丁香婷| 美女999久久久精品视频| 亚洲黄色成人网| 亚洲在线免费| 免费短视频成人日韩| 欧美午夜不卡影院在线观看完整版免费 | 一区二区电影免费在线观看| 亚洲影院污污.| 久久综合网络一区二区| 国产精品久久久久影院亚瑟| 极品少妇一区二区三区精品视频 | 国产免费亚洲高清| 亚洲精品少妇| 久久久九九九九| 亚洲国产另类久久久精品极度| 香蕉久久国产| 国产精品卡一卡二| 99视频在线观看一区三区| 欧美亚洲日本网站| 99精品国产在热久久婷婷| 蜜臀av性久久久久蜜臀aⅴ四虎 | 国产一区二区三区四区在线观看| 亚洲美女视频在线观看| 久久综合激情| 欧美在线视频导航| 国产精品毛片va一区二区三区| 亚洲国产一区二区三区青草影视| 久久精品1区| 亚洲欧美另类在线| 国产精品美女主播| 亚洲综合精品自拍| 日韩小视频在线观看专区| 欧美电影在线免费观看网站| 1024成人| 欧美激情欧美狂野欧美精品 | 在线视频亚洲欧美| 欧美好吊妞视频| 亚洲激情另类| 亚洲国产日韩一级| 欧美不卡高清| 亚洲免费观看高清完整版在线观看熊 | 亚洲第一毛片| 久久亚洲欧美| 亚洲高清不卡一区| 欧美freesex交免费视频| 久久精品国产免费| 在线观看精品一区| 99视频有精品| 亚洲高清在线播放| 欧美激情在线狂野欧美精品| 亚洲黄色一区二区三区| 欧美二区不卡| 欧美本精品男人aⅴ天堂| 亚洲乱码国产乱码精品精天堂| 亚洲电影自拍| 欧美日韩另类字幕中文| 亚洲一区二区在线看| 亚洲一区二区欧美日韩| 国产一区二区三区的电影| 久久伊人精品天天| 蜜桃av综合| 亚洲一区二区三区高清| 香蕉久久夜色精品国产| 亚洲第一中文字幕| aa级大片欧美| 狠狠久久婷婷| 日韩午夜激情av| 好看不卡的中文字幕| 亚洲欧洲在线观看| 国产欧美一区二区精品忘忧草| 免费成人高清在线视频| 欧美日韩精品久久久| 久久成人免费网| 欧美成人国产一区二区 | 久久综合久久综合久久| 欧美激情一区二区三区高清视频| 亚洲午夜精品在线| 久久视频在线视频| 亚洲女人天堂成人av在线| 午夜天堂精品久久久久| 亚洲国产婷婷| 午夜精品免费在线| 夜夜嗨网站十八久久| 午夜精品久久久久久| 亚洲最黄网站| 男女激情视频一区| 久久国内精品视频| 欧美日韩在线播放三区| 久久综合狠狠综合久久综青草| 欧美日韩在线视频首页| 免费看的黄色欧美网站| 国产精品伦一区| 亚洲欧洲一区| 亚洲国产精品激情在线观看| 亚洲一区自拍| 亚洲视频一区二区在线观看| 欧美 日韩 国产精品免费观看| 欧美一区免费| 欧美午夜精品伦理| 亚洲精品国产视频| 亚洲精品1区2区| 久久爱91午夜羞羞| 欧美中文字幕在线视频| 欧美日韩三级| 亚洲激精日韩激精欧美精品| 激情久久久久| 久久精品国产久精国产一老狼| 午夜激情一区| 欧美性事在线| 99re视频这里只有精品| 日韩一级在线| 日韩一级免费观看| 在线看国产日韩| 午夜精品区一区二区三| 亚洲免费视频中文字幕| 欧美色精品天天在线观看视频| 亚洲经典一区| 一二三区精品| 欧美日韩国产123| 亚洲精品亚洲人成人网| 一区二区三区国产精华| 欧美日韩一二三区| 99热这里只有精品8| 在线天堂一区av电影| 国产精品va在线播放| 亚洲一级在线| 欧美在线观看视频一区二区| 国产模特精品视频久久久久| 性久久久久久久久| 另类专区欧美制服同性| 亚洲国产裸拍裸体视频在线观看乱了| 美女视频黄 久久| 亚洲精品影院| 久久成年人视频| 亚洲二区在线观看| 欧美日本韩国一区| 亚洲专区在线| 美女精品网站| 亚洲精品免费网站| 欧美日韩三级视频| 新狼窝色av性久久久久久| 乱码第一页成人| 999在线观看精品免费不卡网站| 欧美午夜电影在线| 久久国产主播| 亚洲美女免费精品视频在线观看| 午夜亚洲伦理| 亚洲日本免费| 国内精品久久久| 欧美成人三级在线| 亚洲视频播放| 欧美成人免费在线观看| 亚洲影院污污.| 韩日精品中文字幕| 欧美日韩一区在线| 久久精品在线播放| 日韩亚洲欧美成人| 欧美va亚洲va国产综合| 亚洲欧美清纯在线制服| 激情综合在线| 国产精品观看| 欧美高清视频在线观看| 西西裸体人体做爰大胆久久久| 亚洲福利电影| 久久久久久久久久久一区 | 久久狠狠婷婷| 日韩亚洲欧美精品| 黑人巨大精品欧美一区二区小视频| 欧美日韩mp4| 乱码第一页成人| 午夜精品剧场| 制服丝袜亚洲播放| 亚洲人体一区| 亚洲国产欧美久久| 国产日韩亚洲欧美精品| 欧美日韩在线一区| 欧美精品成人在线| 免费观看亚洲视频大全| 久久久久国产精品一区二区| 亚洲欧美在线高清|