❶ linux驅動編寫過程中遇到的幾個問題及解決
1、顯示錯誤:unknown field 'ioctl' specified in initializer
解決辦法,查看內核include/linux/fs.h文件,發現里邊定義的struct file_operations中沒有ioctl,這里我們用.unlocked_ioctl取代,形參去掉 struct inode*。
2、在應用程序中,將ioctl替換為unlocked_ioctl後,會出現以下錯誤:undefined reference to `unlocked_ioctl'。因為系統調用ioctl是沒有改變的,還是原來的系統調用介面,只是系統調用的實現中,ioctl()變成了unlocked_ioctl,在應用層你根本不用關注內核中的這些實現上的改變,你只需要按照系統調用的用法用就可以了。所以把應用程序里的unlocked_ioctl改為ioctl,編譯,OK,通過。
3、驅動編譯完成,在開發板上insmod,出現以下錯誤:
WARNING: at lib/kobject.c:595 kobject_put+0x50/0x64()
kobject: '撲' (cbc60a00): is not initialized, yet kobject_put() is being called.
---[ end trace da227214a82491b9 ]---
insmod: cannot insert 'led_dev.ko': Cannot allocate memory
原來是忘了寫內存申請的代碼,添加kmalloc和memset。
4、再次insmod,出現下列錯誤代碼:
Unable to handle kernel paging request at virtual address 7f008820
pgd = cbc70000
[7f008820] *pgd=00000000
Internal error: Oops: 5 [#1]
Moles linked in: led_dev(+)
CPU: 0 Tainted: G W (3.0.1 #439)
PC is at led_init+0xa8/0x108 [led_dev]
LR is at kobj_map+0x144/0x154
pc : [<bf0020a8>] lr : [<c0246e70>] psr: 60000013
sp : cbc6bf10 ip : cbc6beb0 fp : cbc6bf24
r10: 00000000 r9 : bf002000 r8 : cbc6a000
r7 : 00000000 r6 : bf0002bc r5 : 00000000 r4 : 00000000
r3 : 00000000 r2 : 00000000 r1 : 7f008000 r0 : 00000000
Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user
Control: 00c5387d Table: 5bc70008 DAC: 00000015
Process insmod (pid: 112, stack limit = 0xcbc6a268)
Stack: (0xcbc6bf10 to 0xcbc6c000)
bf00: 00000000 c07463c0 cbc6bf7c cbc6bf28
bf20: c00343c8 bf00200c cbc6bf64 cbc6bf38 c0073e24 00000000 00000000 00000000
bf40: 00000000 0000ef52 000d5bf9 bf0002bc 00000000 0000ef52 000d5bf9 bf0002bc
bf60: 00000000 c0034ce8 cbc6a000 00000000 cbc6bfa4 cbc6bf80 c0085960 c0034398
bf80: c00e8738 c00e8610 402004a8 000dfcf8 00000000 00000080 00000000 cbc6bfa8
bfa0: c0034b40 c00858e0 402004a8 000dfcf8 00b5d038 0000ef52 000d5bf9 ffff5f01
bfc0: 402004a8 000dfcf8 00000000 00000080 00000069 00000001 be9c2e64 be9c2e68
bfe0: be9c2e68 be9c2b14 00021cfc 402c1d74 60000010 00b5d038 5fffe821 5fffec21
[<bf0020a8>] (led_init+0xa8/0x108 [led_dev]) from [<c00343c8>] (do_one_initcall+0x3c/0x188)
[<c00343c8>] (do_one_initcall+0x3c/0x188) from [<c0085960>] (sys_init_mole+0x8c/0x1a4)
[<c0085960>] (sys_init_mole+0x8c/0x1a4) from [<c0034b40>] (ret_fast_syscall+0x0/0x30)
Code: e59f0060 eb52980e ea00000b e59f1058 (e5910820)
---[ end trace da227214a82491b9 ]---
Segmentation fault
最後是各種網路,各種谷歌,參考別人的驅動,發現它們的開發板硬體地址並不是自己寫的頭文件,而是調用mach中已經定義好的頭文件,好吧,尋找相應開發板,相應埠的地址頭文件,在驅動文件中添加以下頭文件:
#include <mach/map.h>
#include <mach/regs-gpio.h>
#include <mach/gpio-bank-m.h>
Ok,打完收工,開發板,測試。運行無阻。完成。
5、在做到DS18B20溫度測試模塊驅動的時候,看到網上的代碼有些函數可以直接對引腳的功能進行設置,比如:s3c2410_gpio_cfgpin(DQ_PIN, DQ_PIN_OUTP); 但是對應於我的s3c6410的開發板就不知道用什麼函數了,網上找了半天,發現以上函數是在#include <plat/gpio-cfg.h>中,6410中對應的函數為:extern int s3c_gpio_cfgpin(unsigned int pin, unsigned int to);
6、最近學習移植linux內核,移植了新的linux內核以及掛載了新的NFS之後, 重新測試led驅動,發現安裝模塊以後,運行測試程序會出現以下錯誤:
-/bin/sh: ./main: not found(main為主機上編譯好的測試程序)
原因:
編譯busybox的時候選擇了靜態編譯:
Build Options->
Build BusyBox as a static binary (no shared libs)
Build with Large File Support (for accessing file>2GB)
如果選擇 Build BusyBox as a static binary (no shared libs) 方式進行編譯時,所需的庫已經與程序靜態地鏈接在一起,這些程序不需要額外的庫就可以單獨運行,但是自己編寫的程序在文件系統上運行必須採用靜態編譯,否則會報諸如:bin/sh: main :not found的錯誤。
靜態編譯如:
arm-linux-gcc –static main.c –o main
7.按照普通方法安裝配置tftp,並且關閉了防火牆,但是在開發板上tftp主機,總會報錯:
tftp: server error: (0) Permission denied
解決辦法:
修改文件 /etc/sysconfig/selinux,設定其中的
SELINUX=disabled
然後重啟電腦即可
❷ stp文件是用什麼軟體打開
stp文件是三維模型設計文件,可以用三維建模軟體打開,比如catia軟體。具體步驟如下
1、打開CATIA設計軟體
❸ 提問:文件後綴名的意義.
在網上找的一些文件的後綴。供參考
ICA Citrix文件
ICB Targa點陣圖文件
ICC Kodak列印機格式文件
ICL 圖標庫文件
ICM 圖形顏色匹配配置文件
ICO Windows圖標
IDB MSDev中間層文件
IDD MIDI設備定義
IDF MIDI設備定義(Windows 95需要的文件)
IDQ Internet數據查詢文件
IDX Microsoft FoxPro相關資料庫索引文件;Symantec Q&A相關資料庫索引文件;Microsoft Outlook Express文件
IFF 交換格式文件;Amiga ILBM
IGES 初始圖形交換說明文件
IGF 插入系統元文件
IIF QuickBooks for Windows交換文件
ILBM 點陣圖圖形文件
IMA WinImage磁碟映像文件
IMG GEM映像
IMZ WinImage壓縮磁碟映像文件
INC 匯編語言或動態伺服器包含文件
INF 信息文件
INI 初始化文件;MWave DSP Synth的"nwsynth.ini" GMS安裝;Cravis Ultrasound bank安裝 %>TSom
INP Oracle 3.0
INRS INRS遠程通信聲頻
INS InstallShield安裝腳本;X-Internet簽字文件;Ensoniq EPS字簇設備;Cell/ⅡMAC/PC抽樣設備
INT 中間代碼,當一個源程序經過語法檢查後編譯產生一個可執行代碼
IOF Findit文檔
IQY Microsoft Internet查詢文件
ISO 根據ISD 9660有關CD-ROM文件系統標准列出CD-ROM上的文件
ISP X-Internet簽字文件
IST 數字跟蹤設備文件
ISU InstallShield卸裝腳本
IT 脈沖跟蹤系統音樂模塊(MOD)文件
ITI 脈沖跟蹤系統設備
ITS 脈沖跟蹤系統抽樣,Internet文檔位置
IV Open Inventor中使用的文件格式
IVD 超過20/20微觀數據維數或變數等級文件
IVP 超過20/20的用戶子集配置文件
IVT 超過20/20表或集合數據文件
IVX 超過20/20微數據目錄文件
IW Idlewild屏幕保護程序
IWC Install Watch文檔
J62 Ricoh照相機格式
JAR java檔案文件(一種用於applet和相關文件的壓縮文件)
JAVA Java源文件
JBF Paint Shop Pro圖像瀏覽文件
JFF,JFIF,JIF JPEG文件
JMP SAS的JMPDiscovery表格統計文件
JN1 Epic MegaGames的Jill of the Jungle數據文件
JPE,JPEG,JPG JPEG圖形文件
JS javascript源文件
JSP HTML網頁,其中包含有對一個Java servlet的參考
JTF JPEG點陣圖文件 )"lf
K25 Kurzweil 2500抽樣文件
KAR 卡拉OK MIDI文件(文本+MIDI)
KDC Kodak光增強器
KEY DataCAD圖標工具條文件
KFX KoFak Group 4圖像文件
KIZ Kodak數字明信片文件
KKW RoboHELP幫助工程索引設計器中與主題無關的K開頭的所有關鍵字
KMP Korg Trinity KeyMap文件
KQP Konica照相機本地文件
KR1 Kurzweil 2000抽樣(多軟碟機)文件
KRZ Kurzweil 2000抽樣文件
KSF Korg Trinity抽樣文件
KYE Kye游戲數據
LAB Visual dBASE標簽文件
LBM Deluxe Paint點陣圖文件
LBT,LBX Microsoft FoxPro標簽文件
LDB Microsoft Access加鎖文件
LDL Corel Paradox分發庫
LEG Legacy文檔
LES Logitech娛樂系統游戲配置文件(與REC文件一樣)
LFT 3D Studio(DOS)放樣文件
LGO Paintbrush(Microsoft畫圖應用程序)的徽標文件
LHA LZH更換文件後綴
LIB 庫文件
LIN DataCAD線型文件
LIS 結構化查詢報告(SQR)程序產生的輸出文件
LLX Laplink交換代理
LNK Windows快捷方式文件
LOG [非法語句]志文件
LPD Helix Nut和Bolt文件 >
LRC Intel可視電話文件 *Smf
LSL Corel Paradox保存的庫文件 V
LSP AutoLISP、CommonLISP和其他LISP語言文件 FS83
LST 列表文件 o7
LU ThoughtWing庫單元文件 k
LVL Parallax Software的 Miner Descent/D2 Level擴展p"MT:
LWLO Lightwave分層對象文件 >2nwls
LWOB Lightwave對象文件 lpk
LWP Lotus WordPro 96/97文件 r
LWSC Lightwave視景文件 e
LYR DataCAD層文件 =;F|d-
LZH LH ARC壓縮檔案 }
LZS Skyroads數據文件 W}YC
M1V MPEG相關文件(MIME"mpeg"類型) [Sy
M3D Corel Motion 3D動畫文件 ?zO\:
M3U MPEG URL(MIME聲音文件) h*K~
MAC MacPaint圖像文件 4
MAD Microsoft Access模塊文件 _?Z
MAF Microsoft Access表單文件 a-Z0
MAG 在一些[非法語句]本文件中發現的圖形文件格式 C?p$
MAGIC 魔力郵件監視器配置文件 *p}Z{F
MAK Visual Basil或Microsoft Visual C++工程文件 b}$
MAM Microsoft Access宏 q[Jcq
MAN UNIX手冊頁輸出 ^ub\\
MAP 映射文件;Duke Nukem 3D WAD游戲文件 M
MAQ Microsoft Access查詢文件 Z>uK:
MAR Microsoft Access報表文件 JIH3
MAS Lotus Freelance Graphics Smart Master文件 p!]
MAT Microsoft Access表;3D Studio MAX材料庫 z1
MAUD MAUD抽樣格式 [}8
MAX Kinetx的3DStudio MAX文件;該格式用於一個3D場景文件;Paperport文件;OrCAD設計文件 ;7<c<r
MAZ Hover迷路數據;Division的dVS/dVISE使用的文件格式 ^/
MB1 Apogee Monster Bash數據文件 kDcc>
MBOX Berkeley Unix郵箱格式 &46
MBX Microsoft Outlook保存email格式;Eudora郵箱 LVsi4D
MCC Dailerl0呼叫卡 bR%
MCP Metrowerks CodeWarrior工程文件 yac*
MCR DataCAD鍵盤宏文件 {,
MCW Microsoft Word的Macintosh文檔 }
MDA Microsoft Access內抽入器;Microsoft Access 2.0版及其後續版本的工作組事件 "
MDB Microsoft Access資料庫 &7&5(
MDE Microsoft Access MDE文件 #mS
MDF Alcohol的文件格式Wu
MDL 數字跟蹤器音樂模塊(MOD)文件;Quake模 塊文件 2x
MDN Microsoft Access空資料庫模板 oz})Wl
MDS Alcohol的文件格式J
MDW Microsoft Access工作組文件 EQ0M=
MDZ Microsoft Access向導模板文件 |`m
MED 音樂編輯器,OctaMED音樂模塊(MOD)文件 CT;7A
MER 電子表格/資料庫數據交換格式;FileMaker、Excel及其他軟體能識別 [+G*!^
MET 表示管理器元文件 .2
MFG Pro/ENGINEER製造文件 4mA>>6
MGF 在材料與幾何學里的文件格式 d!]
MHTM,MHTML MHTML文檔(MIME) xV\Y<P
MI 雜項 ~`
MIC Microsoft Image Composer文件 Qch`>q
MID MIDI音樂 ->E
MIF Adobe FramMaker交換格式 d
MIFF 與機器無關格式文件 lF
MIM,MIME,MME Internet郵件擴展格式的多用途文件,經常作為發送e-mail時在AOL里附件而創建的文件;在一個多區MIM文件里的文件能用WinZip或其他類似程序打開 J
MLI 3D Studio的材料庫格式文件 })yQ)q
MMF Meal Master格式;一個處方類格式;Microsoft郵件文件 b+
MMG 超過20/20表或集會數據文件 0</!,0
MMM Microsoft多媒體電影 VH
MMP Mindmapor Mind Manager文件 %SW
MN2 Descent2任務文件 S5o#q,
MND,MNI Mandelbort for Windows A?+3
MNG 多映像網路圖形 aOf
MNT,MNX Microsoft FoxPro菜單文件 &ZP
MNU Visual dBASE菜單文件;Intertel Systems Interact菜單文件 E=L
MOD Fast Tracker、Star Trekker、Noise Tracker(等等)音樂模塊文件;Microsoft多計劃電子表格;Amiga/PC磁軌文件 w!O[Ak
MOV QuickTime for Windows電影 e
MP2 第二層MPEG音頻文件 }Q0C
MP3 第三層MPEG音頻文件 !LOVFf
MPA MPEG相關文件,MIME"mpeg類型" R_QWp
MPE,MPEG,MPG MPEG動畫文件 `M4
MPP Microsoft工程文件;CAD繪圖文件格式 Qm5Z
MPR Microsoft FoxPro菜單(已編譯) O~<7
MRI MRI掃描文件 DfM
MSA 魔術陰影檔案 k
MSDL Manchester的場景描述語言 &N
MSG Microsoft郵件消息 |Uik_
MSI Windows 安裝器包 F
MSN Microsoft網路文檔;Descent Mission文件 ;e8G
MSP Microsoft Paint(畫圖)點陣圖文件;Windows Installer路徑文件 }d1,
MST Windows 安裝器傳輸文件 zy40
MTM Multi 跟蹤器音樂模塊(MOD)文件 X
MUL Ultima在線 6
MUS 音樂 d)&o
MUS10 Mus10聲音 -H
MVB Microsoft多媒體查看器文件 #c
MWP Lotus WordPro 97 Smart Master文件
NAN Nanoscope文件(Raw Grayscale) Qz4z
NAP NAP元文件 ,U
NCB Microsoft Developer Studio文件 @t
NCD Norton改變目錄 v7/
NCF NetWare命令文件;Lotus Notes內部剪切板 "oX
NDO 3D 低多邊形建模器,Nendo W8uT
netCDF 網路公用數據表單 x%8]s
NFF 中性文件格式 -J&@
NFT NetObject Fusion模板文件 <6R
NIL Norton游標庫文件(EasyIcons-兼容) v
NIST NIST Sphere聲音 e}2A
NLB Oracle 7數據 x)&\
NLM NetWare可裝載模塊 2#
NLS 用於本地化的國家語言支持文件(例如,Uniscape) ^$7x4B
NLU Norton Live Update e-mail 觸發器文件 dcK
NOD NetObject Fusion文件 g-=}8
NSF Lotus Notes資料庫 tG,L
NSO NetObject Fusion文檔文件 `"
NST Noise Tracker音樂模塊(MOD)文件 E0m0}
NS2 Lotus Notes資料庫(第二版) u
NTF Lotus Notes資料庫模板 r)@HJ
NTX CA-Clipper索引文件 L
NWC Noteworthy Composer歌曲文件 "Kl
NWS Microsoft Outlook Express新聞消息(MIME RFC822) '|)
O01 台風聲音文件 }u5t{
OBD Microsoft Office活頁夾 `|NkXj
OBJ 對象文件 OrZicI
OBZ Microsoft Office活頁夾向導 .U*M
OCX Microsoft對象鏈接與嵌入定製控制項 }
ODS Microsoft Outlook Express郵箱文件 @
OFF 3D 網狀物對象文件格式 c)(J
OFN Microsoft Office FileNew文件 j+R
OFT Microsoft Outlook模板 )+(
OKT Oktalyzer音樂模塊(MOD)文件 \
OLB OLE對象庫 c<
OLE OLE對象 r$L>
OOGL 面向對象圖形庫xx% T0
OPL 組織者編程語言源文件——Psion/Symbian &*5K
OPO OPL輸出可執行文件 QPO
OPT Microsoft Developer Studio文件 ^>R
OPX OPL擴展DLL(動態鏈接庫) i\mRK
ORA Oracle 7 配置文件 f4t
ORC Oracle 7腳本文件 8
ORG Lotus Organizer 文件 YtC$
OR2 Lotus Organizer 2 文件 ,x~Z?
OR3 Lotus Organizer 97 文件 -
OSS Microsoft Office查找文件 |2D
OST Microsoft Exchange / Outlook 離線文件 rpG
OTL Super NoteTab 模板文件 &
OUT C語言輸出文件 [
continue V@BEA
P3 Primavera Project Planner(工程設計器)文件 ]Hzi
P10 Tektronix Plot 10 繪圖文件 E7C-8
P65 PageMaker 6.5文件 <8}t
P7C Digital ID 文件(MIME) G.yZi>
PAB Microsoft個人地址簿 bEA
PAC SB Studio Ⅱ 包 9%
PAK Quake WAD文件 ]'e$
PAL 壓縮文件 \*O
PART Go!Zilla部分下載文件 +#
PAS Pascal源代碼 BJHD[
PAT DataCAD Hatch模式文件;CorelDRAW模式;高級Gravis Ultrasound / Forte 技術;碎片文件 8n4!J
PBD PowerBuilder動態庫,作為本地DLL的一個替代物 ,s-fY"
PBF Turtle Beach的Pinnacle 銀行文件 B
PBK Microsoft PhoneBook(電話簿):qR
&;南平IT論壇 -- 南平IT -- IT的南平,走進網路人生,走進IT }F
PBL 用於訶owerBuilder開發環境中的PowerBuilder動態庫 vTiwm
PBM 可導出點陣圖 JI
PBR PowerBuilder資源 w8_/w*
PCD Kodak Photo-CD映像;P-Code編譯器測試腳本,由Microsoft測試與Microsoft Visual測試 ^
PCE Maps Eudora郵箱名字的DOS文件名 b
PCL Hewlett-Packard 列印機控制語言文件(列印機備用點陣圖) ih7T
PCM 聲音文件格式;OKI MSM6376 合成晶元 PCM格式 +[@
PCP Symantec Live Update Pro文件 Ply]
PCS PICS動畫文件 yF
PCT Macintosh PICT籜�募?<.tJ%8
PCX Zsoft PC畫筆點陣圖 !pN
PDB 3Com PalmPilot資料庫文件 w(I+S
PDD 可以用Paint Shop Pro或其他圖像處理軟體打開的圖形圖像 Et
PDF Adobe Acrobat 可導出文檔格式文件(可用Web瀏覽器顯示);Microsoft系統管理伺服器包定義文件;NetWare列印機定義文件 ^.@cTR
PDP Broderbund的Print Shop Deluxe文件 vo_
PDQ Patton&Patton Flowercharting PDQ Lite 文件 YF
PDS 攝影圖像文件(該文件格式的來源不清楚) ^e_
PF Aladdin系統對私人文件進行加密的文件 ly=4'Q
PFA 類型1字體(ASCⅡ) lO
PFB 類型1字體(二進制) E
PFC PF組件 |()m8*
PFM 列印機字體尺度 P8[z
PGD 良好隱私(Pretty Good Privacy,PGP)虛擬磁碟文件 ~&
PGL HP繪圖儀繪圖文件 |aEvA
PGM 可輸出灰度圖(點陣圖) @
PGP 用良好隱私(PGP)演算法加密文件 UC
PH 由Microsoft幫助文件編譯器產生的臨時文件 [#).
PHP,PHP3 包含有PHP腳本的HTML網頁 Dg_
PHTML 包含有PHP腳本的HTML網頁;由Perl分析解釋的HTML Co}
PIC PC畫圖點陣圖;Lotus圖片;Macintosh PICT繪圖 OP!wL
PICT Macintosh PICT圖形文件 '&.su/
PIF 程序信息文件;IBM PIF繪圖文件 ^E
PIG LucasArts的Dark Forces WAD文件 )fFy<
PIN Epic Pinball數據文件 YV
PIX 內置系統點陣圖 1
PJ MKS源完整性文件 ?$#>
PJX,PJT Microsoft Visual FoxPro工程文件 8g
PKG Microsoft Developer Studio應用程序擴展(與DLL文件類似) {fLE
PKR PGP的公用鑰匙環 9
PL Perl程序 0}m
PLG 由REND386/AVRIL使用的文件格式 ;V`t1R
PLI Oracle 7數據描述 &c
PLM Discorder Tracker2模塊 ,""z"a
PLS Disorder Tracker2抽樣文件;MPEG PlayList文件(由WinAmp使用) FG
PLT HPGL繪圖儀繪圖文件;AutoCAD plot繪圖文件;Gerber標志製作軟體 PV
PM5 Pagemaker 5.0文件 F}s\Kd
PM6 Pagemaker 6.0文件 8
PNG 可移植的網路圖形點陣圖;Paint Shop Pro瀏覽器目錄 v2W3
PNT,PNTG MacPaint圖形文件 UTLLO,
POG Descent2 PIG文件擴展 q
POL Windows NT策略文件 qF
POP Visual dBASE上托文件 Rud`Zc
POT Microsoft Powerpoint模塊 q
POV 視頻射線跟蹤器暫留 tNYRO
PP4 Picture Publisher 4點陣圖 ,
PPA Microsoft Powerpoint內插器 C9
PPF Turtle Beach的Pinnacle程序文件 Zi
PPM 可移植的象素映射點陣圖 v`
PPP Parson Power Publisher;Serif PagePlus桌面出版預設輸出 FBJqM
PPS Microsoft Powerpoint幻燈片放映 X
PPT Microsoft Powerpoint演示文稿 UBCFe&
PQI PowerQuest驅動器圖像文件 w#Et6Z
PRC 3COM PalmPiltt資源(文本或程序)文件 5uj5a1
PRE Lotus Freelance演示文稿 (J0&E
PRF Windows系統文件,Macromedia導演設置文件 .ow
PRG dBASE Clipper和FoxPro程序源文件;WAVmaker程序 w_HT
PRJ 3D Studio(DOS)工程文件 wa
PRN 列印表格(用空格分隔的文本);DataCAD Windows列印機文件 um
PRP Oberson的Prospero數據轉換產品保存的工程文件 $|
PRS Harvard Graphics for Windows演示文件 .M:]I1
PRT 列印格式化文件;Pro/ENGINEER元件文件 -*lUC?
PRV PsiMail Internet提供者模板文件 Y
PRZ Lotus Freelance Graphics 97文件 !
PS Postscript格式化文件(PostScript列印機可讀文件) c
PSB Pinnacle Sound Bank 86*'nl
PSD Adobe photoshop點陣圖文件 b_
PSI PSION a-Law聲音文件 ~?
PSM Protracker Studio模型格式;Epic游戲的源數據文件 ;xt$sW
PSP Paint Shop Pro圖像文件 (
PST Microsoft Outlook個人文件夾文件 Wi
PTD Pro/ENGINEER表格文件 Hp*=[h
PTM Polytracker音樂模塊(MOD)文件 l7Z=qb
PUB Ventura Publisher出版物;Microsoft Publisher文檔 MA".pQ
PWD Microsoft Pocket Word文檔 g~$p0
PWL Windows 95口令列表文件+r
PWP Photoworks圖像文件(能被Photoworks瀏覽的一系列文件) {0&qE
PWZ Microsoft Powerpoint向導 o+5T
PXL Microsoft Pocket Excel電子表格 !l[s
PY 來自Yahoo的電子消息;Python腳本文件 {7"Ef
PYC Python腳本文件
QAD PF QuickArt文檔 Tc>G
QBW QuickBooks for Windows文件 .S
QDT 來自Quicken UK的QuickBooks數據文件,帳目/稅/貨單程序 wpW*,
QD3D Apple的QuickDraw 3D元文件格式 N#q
QFL FAMILY LAWYER文檔 l|
QIC Microsoft備份文件 =3d
QIF QuickTime相關圖像(MIME);Quicken導入文件 ObQ
QLB Quick庫 @UsI9
QM Quality Motion文件 A.@-
QRY Microsoft查詢文件 ?Wfz
QST Quake Spy Tab文件 7q"
QT,QTM QuickTime電影 f('VM
QTI,QTIF QuickTime相關圖像 0ZO&c
QTP QuickTime優先文件 !
QTS Mac PICT圖像文件;QuickTime相關圖像 ,(tkd
QTX QuickTime相關圖像 "%%lf
QW Symantec Q&A Write程序文件 ,L0ke
QXD Quark XPress文件 c
R Pegasus郵件資源文件 |V
RA RealAudio聲音文件 [ed%
RAM RealAudio元文件 jY #=i
RAR RAR壓縮檔案(Eugene Roshall格式) kijhrf
RAS Sun光柵圖像點陣圖 V
RAW RAW文件格式(點陣圖);Raw標識的PCM數據 SadzLD
RBH 由RoboHELP維持的RBH文件,它加入到一個幫助工程文件的信息中 ZL5
RDF 資源描述框架文件(涉及XML和元數據) r
RDL Descent注冊水平文件 uuHdS
REC 錄音機宏;RapidComm聲音文件 s$lq
REG 注冊表文件 t/Pwm_
REP Visual dBASE報表文件 24
RES Microsoft Visual C++資源文件 pf
RFT 可修訂的表單文本(IBM的DCA一部分或文檔內容框架結構一部分) g4
RGB,SGI Silicon圖形RGB文件 QwR
RLE Run-Length編碼的點陣圖 ;C
RL2 Descent2注冊水平文件 s\k:
RM RealAudio視頻文件 _Qhk
RMD Microsoft RegMaid文檔 V]A,
RMF Rich Map格式(3D游戲編輯器使用它來保存圖) uKC
RMI M1D1音樂 tD\Y3
ROM 基於盒式磁帶的家庭游戲模擬器文件(來自Atari 2600、Colecovision、Sega、Nintendo等盒式磁帶里的ROM完全拷貝,在兩個模擬器之間不可互修改) 7R;
ROV Rescue Rover數據文件 {
RPM RedHat包管理器包(用於Linux) o{m
RPT Microsoft Visual Basic Crystal報表文件 8A+<l
RRS Ace game Road Rash保存的文件 Z0
RSL Borland的Paradox 7報表 '20J#D
RSM WinWay Resume Writer恢復文件 Yr|
RTF Rich Text格式文檔 Pcy
RTK RoboHELP使用的用來模擬Windows幫助的搜索功能 C!,
RTM Real Tracker音樂模塊(MOD)文件 vZ
RTS RealAudio的RTSL文檔;RoboHELP對復雜操作進行加速 Hx{!S
RUL InstallShield使用的擴展名 ;
RVP Microsoft Scan配置文件(MIME) ]Yl-V
Rxx 多卷檔案上的RAR壓縮文件(xx= 1~99間的一個數字) Pfo.z
S 匯編源代碼文件 D*
S3I Scream Tracker v3設備 "e0
S3M Scream Tracker v3的聲音模塊文件 g&2$t1
SAM Ami專業文檔;8位抽樣數據)\
SAV 游戲保存文件 HN)62
SB 原始帶符號位元組(8位)數據 jMhd,@
SBK Creative Labs的Soundfont 1.0 Bank文件;(Soundblaster)/EMU SonndFont v1.x Bank文件 2
SBL Shockwave Flash對象文件 0v4'hN
SC2 Microsoft Schele+7文件格式;SAS目錄(Windows 95/NT、OS/2、Mac) MEzi
SC3 SimCity 3000保存的游戲文件 %
SCC Microsoft Source Safe文件 3u
SCD Matrix/Imapro SCODL幻燈片圖像;Microsoft Schele +7 jN
SCF Windows Explorer命令文件 ^dxYg
SCH Microsoft Schele+1 n
SCI ScanVec Inspire本地文件格式 ]Gv
SCN True Space 2場景文件 3c
SCP 撥號網路腳本文件 qXP{YP
SCR Windows屏幕保護;傳真圖像;腳本文件 U@V
SCT SAS目錄(DOS);Scitex CT點陣圖;Microsoft FoxPro表單 PETt8&
SCT01 SAS目錄(UNIX) W]
SCV ScanVec CASmate本地文件格式 867O%
SCX Microsoft FoxPro表單文件 6B|
SD Sound Designer 1聲音文件 O7
SD2 Sound Designer 2展平文件/數據分X指令;SAS資料庫(Windows 95/NT、OS/2、Mac) q5'nG
SDF 系統數據文件格式—Legacy Unisys(Sperry)格式 Vi#
SDK Roland S—系列軟盤映像 B
SDL Smart Draw庫文件 G$
SDR Smart Draw繪圖文件 eXzu
SDS 原始Midi抽樣轉儲標准文件 r`YE($
SDT SmartDraw模板 #'R?
SDV 分號分隔的值文件 Q`Q
SDW Lotus WordPro圖形文件;原始帶符號的DWORD(32位)數據 -q%8<
SDX 由SDX壓縮的Midi抽樣轉儲標准文件 b v
SEA 自解壓檔案(Stufflt for Macintosh或其他軟體使用的文件) cR{
SEP 標簽圖像文件格式(TIFF)點陣圖 X`B
SES Cool Edit Session文件(普通數據聲音編輯器文件) ~
SF IRCAM聲音文件格式 I#B|j[
SF2 Emu Soundfont v2.0文件;Creative Labs的Soundfont 2.0 Bank文件(Sound Blaster) #y
SFD SoundStage聲音文件數據 0i
SFI Sound Stage聲音文件信息 ?/-
SFR Sonic Foundry Sample資源 Q{8r
SFW Seattle電影工程(損壞的JPEG) LO
SFX RAR自解壓檔案 Ws
SGML 標准通用標簽語言 $l-h
SHB Corel Show演示文稿;文檔快捷文件 \
SHG 熱點點陣圖 Cig
SHP 3D Studio(DOS)形狀文件;被一些應用程序用於多部分交互三角形模型的3D建模 rws|
SHS Shell scrap文件;據載用於發送"口令盜竊者" ~lI
SHTML 含有伺服器端包括(SSI)的HTML文件 &
SHW Corel Show演示文稿 A_^
SIG 符號文件 f$`
SIT Mac的StuffIt檔案文件 QG-
SIZ Oracle 7配置文件 \)
SKA PGP秘鑰 )
SKL Macromedia導演者資源文件 tD
SL PACT的保存布局擴展名 S
SLB Autodesk Slide庫文件格式 c{O"
SLD Autodesk Slide文件格式 MS6V
SLK Symbolic Link(SYLK)電子表格 ftW
SM3 DataCAD標志文件 Y*N#
SMP Samplevision格式;Ad Lib Gold抽樣文件 HlI9zn
SND NeXT聲音;Mac聲音資源;原始的未符號化的PCM數據;AKAI MPC系列抽樣文件 71q
SNDR Sounder聲音文件 ";y
SNDT Sndtool聲音文件 {?ikA@
SOU SB Studio Ⅱ聲音 :]
SPD Speech數據文件 o1A.
SPL Shockwave Flash對象;DigiTrakker抽樣 $+Y'
SPPACK SPPack聲音抽樣 yl
SPRITE Acorn的點陣圖格式 L
SQC 結構化查詢語言(SQR)普通代碼文件 {
SQL Informix SQL查詢;通常被資料庫產品用於SQL查詢(腳本、文本、二進制)的文件擴展名 +mn
SQR 結構化查詢語言(SQR)程序文件 m:r%
SSDO1 SAS數據集合(UNIX) q\Fj
SSD SAS資料庫(DOS) UP
SSF 可用的電子表格文件 C0
ST Atari ST磁碟映像 !q
STL Sterolithography文件 v
STM .shtml的短後綴形式,含有一個服務端包括(SSI)的HTML文件;Scream Tracker V2音樂模塊(MOD)文件 g^
STR 屏幕保護文件 g@
STY Ventura Publisher風格表 uWuG;X
SVX Amiga 8SVX聲音;互交換文件格式,8SVX/16SV 6p_5s0
SW 原始帶符號字(16位)數據 CM[
SWA 在Macromedia導演文件(MP3文件)中的Shockwave聲音文件 8
SWF Shockwave Flash對象 !5Oy/
SWP DataCAD交換文件 x
SYS 系統文件 `
SYW Yamaha SY系列波形文件
T64 Commodore 64模擬器磁帶映像文件 cx8(JV
TAB Guitar表文件 En>R,
TAR 磁帶檔案 1
TAZ UNIX gzip/tape檔案 p%f'D
TBK Asymetrix Toolbook交互多媒體文件 cs(Y
TCL 用TCL/TK語言編寫的腳本 C]|
TDB Thumbs Plus資料庫 fP
TDDD Imagine 和 Turbo Silver射線跟蹤器使用的文件格式 ;}
TEX 正文文件 (
TGA Targa點陣圖 x!']p
TGZ UNIX gzip/tap檔案文件 d5_
THEME Windows 95桌面主題文件 m
THN Graphics WorkShop for Windows速寫 :Ww
TIF,TIFF 標簽圖像文件格式(TIFF)點陣圖 +?
TIG 虎形文件,美國政府用於分發地圖 cJ}
TLB OLE類型庫 -
TLE 兩線元素集合(NASA) 2D
TMP Windows臨時文件 _}t9B)
TOC Eudora郵箱內容表 0
TOL Kodak照片增強器 y
TOS Atari 16/32和32/32計算機操作系統文件 @*
TPL CakeWalk聲音模板文件;DataCAD模板文件 .xHi^
TPP Teleport Pro工程 Dx}
TRK Kermit腳本文件 Ph[
TRM 終端文件 \>BmM
TRN MKS源完整性工程用法[非法語句]志文件 t)q
TTF TrueType字體文件 IOrl
TTK Corel Catalyst Translaton Tool Kit s9
TWF TabWorks文件 @]
TWW Tagwrite模板 2?dR
TX8 MS-DOS文本 Q,Bs
TXB Descent/D2編碼概要文件 l
TXT ASCⅡ文本格式的聲音數據 l[n8
TXW Yamaha TX16W波形文件 !d@
TZ 老的壓縮格式文件 #},pI
T2T Sonate CAD建模軟體文件 O#'
UB 原始未符號化的位元組(8位)數據 :.=MU
UDF Windows NT/2000唯一性資料庫文件 cyH
UDW 原始未符號化的雙字(32位)數據 xu
ULAW 美國電話格式(CCITT G.711)聲音 *
ULT Ultra Tracker音樂模塊(MOD)文件 R
UNI MikMod UniMod格式化文件 D*s
URL Internet快捷方式文件 p:md~'
USE MKS源完整性文件 ;
UU,UUE UU編碼文件 I>xy
UW 原始未符號化字(16位)數據 |_.Z{n
UWF UltraTracker波形文件 Z.=5v;
V8 Covox 8位聲音文件 Jx
VAP 加註講演文件 n,vv
VBA VBase文件 3
VBP Microsoft Visual Basic工程文件 e>>w
VBW Microsoft Visual Basic工作區文件 M
VBX Microsoft Visual Basic用戶定製控制項 =o0,c
VCE Natural MicroSystems(NMS)未格式化聲音文件(由Cool Edit使用) [J
VCF 虛擬卡文件(Netscape);Veri配置文件;為與Sense8的WordToolkit一起使用而定義對象 A^x7FE
VCT,VCX Microsoft FoxPro類庫 #
VDA Ta
❹ 計算機中的文件名一般分幾種
什麼是文件名後綴
說起來Windows工作界面下的文件名簡直是隨心所欲,比如:某編輯部的2000年工作計劃。文件名即可用中文直接表達,而且長度最長可達256個字元,讓人看起來真是一目瞭然。然而在Windows環境中,安裝的軟體中卻大量存在著類似CALENDAR.EXE、GAMES.GRP等等的文件名,這又是為什麼呢?原來這些文件名都是根據DOS環境的文件名命名規則而定的。
DOS環境下的文件名
在DOS下,文件名採用8+3結構,即:最長8位的文件名,由小數點分隔後再跟上最長3位的後綴名,如:READ.ME、SETUP.EXE,一般情況下文件名不允許使用漢字,只能由字母、數字和一些符號組成。如READ.ME用中文理解就是"讀我",即提示用戶在使用軟體前先看看這個文件的內容,以獲取更多的提示信息。而更重要的是,DOS下規定用後綴名來區分各種不同的文件。
在DOS下最容易遇到的首先是可執行文件,後綴名有兩類:*.exe、*.com(此處的*表示文件名任意),它們是由匯編語言或其它高級語言編出的程序經過編譯後直接在DOS下運行的文件。有時由於軟體功能多、內存偏小,不能一次性全部調入內存還可能有同文件名的ovl文件,如ws.exe、ws.ovl。另外還有一種文件可以直接運行,*.bat,即批處理文件,其中有許多命令或可執行文件名,主要用於提高工作效率,其中最有用的是Autoexec.bat,這個文件在開機時會被自動執行(自動執行在英文中就是Automatically execute)。而另外一種可以載入但不能直接運行的文件即是系統擴展管理文件*.sys(sys即系統system),它主要提供某些非標准設備如滑鼠、擴充內存等的驅動程序,如mouse.sys、himem.sys。為了統一管理還專門規定了一個config.sys的文本文件來一次性地在開機時自動調入這些必需的設備驅動程序,這些文件一旦被誤刪或換名或被病毒侵襲則將直接導致系統工作不正常。
DOS下字處理產生的文件原本是可以不用後綴的,但人們常用*.txt表示(txt即文本text)。被所有的平台和所有應用程序支持。而為了管理方便,人們也可以用自己的名字做後綴來表示是自己建的文本文件,如我輸入的很多文章即為*.mcj,為了便於用戶在意外刪掉原文件的情況下能盡快恢復原文件,許多字處理系統都提供了一種自動備份的功能,如我第二次編輯JIHUA.MCJ時(JIHUA:計劃的漢語拼音),系統會先拷貝一份原文件為JIHUA.BAK。使用具有特殊格式功能的字處理軟體,如求伯君先生早年推出的WPS,就會規定其後綴為.wps,用以標識是用WPS生成的文本文件。當使用字處理軟體編輯高級語言程序時,後綴通常為相應語言的前三個字母(如:*.BAS即BASIC語言源程序,*.PAS為PASCAL語言程序,*.FOR為Fortran語言程序,*.C即為C語言,*.ASM即為匯編語言程序)。
伴隨著可執行文件常附有以下幾類文件:*.HLP即幫助文件(help)、*.CFG即配置文件(config)、*.DAT即數據文件(data)、*.LOG即日誌文件(log)、*.TMP為臨時文件(temporal)。
Windows環境下的文件名
絕大多數DOS文件名後綴在Windows下繼續有效,但Windows本身也引出了許多種嶄新的後綴名,如:*.drv為設備驅動程序(Driver)、*.fon和*.fot都是字型檔文件、*.grp為分組文件(Group)、*.ini為初始化信息文件 (Initiation)、*.pif為DOS環境下的可執行文件在Windows下執行時所需要的文件格式、*.crd即卡片文件(Card)、*.rec即記錄器宏文件(Record)、*.wri即文本文件(Write),它是字處理write.exe生成的文件、*.doc和*.rtf也是文本文件(Document),它們是Word產生的文件、*.cal為日歷文件、*.clp是剪貼板中的文件格式、*.htm和 *.html即主頁文件、*.par為交換文件、*.pwl為口令文件(Password)等等。
文件後綴名大全在網上找的一些文件的後綴。供參考
ICA Citrix文件 |K
ICB Targa點陣圖文件 )
ICC Kodak列印機格式文件 q \q
ICL 圖標庫文件 ^gp
ICM 圖形顏色匹配配置文件 }-X
ICO Windows圖標 Y')~
IDB MSDev中間層文件 8y
IDD MIDI設備定義 .q
IDF MIDI設備定義(Windows 95需要的文件) <c
IDQ Internet數據查詢文件 e\K8
IDX Microsoft FoxPro相關資料庫索引文件;Symantec Q&A相關資料庫索引文件;Microsoft Outlook Express文件 6
IFF 交換格式文件;Amiga ILBM !}X
IGES 初始圖形交換說明文件 T=*
IGF 插入系統元文件 $!3
IIF QuickBooks for Windows交換文件 s?f(
ILBM 點陣圖圖形文件 o
IMA WinImage磁碟映像文件 YUa([$
IMG GEM映像 xC(@
IMZ WinImage壓縮磁碟映像文件 7-
INC 匯編語言或動態伺服器包含文件 a{9<s!
INF 信息文件 #jy4e
INI 初始化文件;MWave DSP Synth的"nwsynth.ini" GMS安裝;Cravis Ultrasound bank安裝 %>TSom
INP Oracle 3.0癤蛟縉詘奼鏡謀淼ピ創�?# |P
INRS INRS遠程通信聲頻 ;3Pi
INS InstallShield安裝腳本;X-Internet簽字文件;Ensoniq EPS字簇設備;Cell/ⅡMAC/PC抽樣設備 q.kpG)
INT 中間代碼,當一個源程序經過語法檢查後編譯產生一個可執行代碼 qa8cD-
IOF Findit文檔 83%
IQY Microsoft Internet查詢文件 |+
ISO 根據ISD 9660有關CD-ROM文件系統標准列出CD-ROM上的文件 _GEsK
ISP X-Internet簽字文件 <o
IST 數字跟蹤設備文件 2Lw*A
ISU InstallShield卸裝腳本 7;=
IT 脈沖跟蹤系統音樂模塊(MOD)文件 V
ITI 脈沖跟蹤系統設備 x?L
ITS 脈沖跟蹤系統抽樣,Internet文檔位置 c
IV Open Inventor中使用的文件格式 ^]\
IVD 超過20/20微觀數據維數或變數等級文件 No,
IVP 超過20/20的用戶子集配置文件 Cnr
IVT 超過20/20表或集合數據文件 2
IVX 超過20/20微數據目錄文件 l?FmS
IW Idlewild屏幕保護程序 "=3
IWC Install Watch文檔 )T
J62 Ricoh照相機格式 _i> am
JAR Java檔案文件(一種用於applet和相關文件的壓縮文件) M
JAVA Java源文件 I
JBF Paint Shop Pro圖像瀏覽文件 -<D+>e
JFF,JFIF,JIF JPEG文件 dy
JMP SAS的JMPDiscovery表格統計文件 `K)tm
JN1 Epic MegaGames的Jill of the Jungle數據文件 Nk
JPE,JPEG,JPG JPEG圖形文件 ^V
JS javascript源文件 J7~[S
JSP HTML網頁,其中包含有對一個Java servlet的參考 pKCD
JTF JPEG點陣圖文件 )"lf
K25 Kurzweil 2500抽樣文件 ex$CA
KAR 卡拉OK MIDI文件(文本+MIDI) 7I
KDC Kodak光增強器 ,vW~O)
KEY DataCAD圖標工具條文件 _Rw,
KFX KoFak Group 4圖像文件 5y88rO
KIZ Kodak數字明信片文件 @*"7B0
KKW RoboHELP幫助工程索引設計器中與主題無關的K開頭的所有關鍵字 G}
KMP Korg Trinity KeyMap文件 GO^.pO
KQP Konica照相機本地文件 c 5!Q-
KR1 Kurzweil 2000抽樣(多軟碟機)文件 >
KRZ Kurzweil 2000抽樣文件 yB>Z1
KSF Korg Trinity抽樣文件 %Ur't'
KYE Kye游戲數據 !
LAB Visual dBASE標簽文件 `F
LBM Deluxe Paint點陣圖文件 Wd{.
LBT,LBX Microsoft FoxPro標簽文件v~Fsi
LDB Microsoft Access加鎖文件 ZTm
LDL Corel Paradox分發庫 {
LEG Legacy文檔 c^>~
LES Logitech娛樂系統游戲配置文件(與REC文件一樣) 9&6
LFT 3D Studio(DOS)放樣文件 5-c>
LGO Paintbrush(Microsoft畫圖應用程序)的徽標文件 QV.
LHA LZH更換文件後綴 qf
LIB 庫文件 XU/
LIN DataCAD線型文件 `A|D53
LIS 結構化查詢報告(SQR)程序產生的輸出文件 i
LLX Laplink交換代理 jSw
LNK Windows快捷方式文件 \
LOG [非法語句]志文件 %W#[4L
LPD Helix Nut和Bolt文件 >
LRC Intel可視電話文件 *Smf
LSL Corel Paradox保存的庫文件 V
LSP AutoLISP、CommonLISP和其他LISP語言文件 FS83
LST 列表文件 o7
LU ThoughtWing庫單元文件 k
LVL Parallax Software的 Miner Descent/D2 Level擴展p"MT:
LWLO Lightwave分層對象文件 >2nwls
LWOB Lightwave對象文件 lpk
LWP Lotus WordPro 96/97文件 r
LWSC Lightwave視景文件 e
LYR DataCAD層文件 =;F|d-
LZH LH ARC壓縮檔案 }
LZS Skyroads數據文件 W}YC
M1V MPEG相關文件(MIME"mpeg"類型) [Sy
M3D Corel Motion 3D動畫文件 ?zO\:
M3U MPEG URL(MIME聲音文件) h*K~
MAC MacPaint圖像文件 4
MAD Microsoft Access模塊文件 _?Z
MAF Microsoft Access表單文件 a-Z0
MAG 在一些[非法語句]本文件中發現的圖形文件格式 C?p$
MAGIC 魔力郵件監視器配置文件 *p}Z{F
MAK Visual Basil或Microsoft Visual C++工程文件 b}$
MAM Microsoft Access宏 q[Jcq
MAN UNIX手冊頁輸出 ^ub\\
MAP 映射文件;Duke Nukem 3D WAD游戲文件 M
MAQ Microsoft Access查詢文件 Z>uK:
MAR Microsoft Access報表文件 JIH3
MAS Lotus Freelance Graphics Smart Master文件 p!]
MAT Microsoft Access表;3D Studio MAX材料庫 z1
MAUD MAUD抽樣格式 [}8
MAX Kinetx的3DStudio MAX文件;該格式用於一個3D場景文件;Paperport文件;OrCAD設計文件 ;7<c<r
MAZ Hover迷路數據;Division的dVS/dVISE使用的文件格式 ^/
MB1 Apogee Monster Bash數據文件 kDcc>
MBOX Berkeley Unix郵箱格式 &46
MBX Microsoft Outlook保存email格式;Eudora郵箱 LVsi4D
MCC Dailerl0呼叫卡 bR%
MCP Metrowerks CodeWarrior工程文件 yac*
MCR DataCAD鍵盤宏文件 {,
MCW Microsoft Word的Macintosh文檔 }
MDA Microsoft Access內抽入器;Microsoft Access 2.0版及其後續版本的工作組事件 "
MDB Microsoft Access資料庫 &7&5(
MDE Microsoft Access MDE文件 #mS
MDF Alcohol的文件格式Wu
MDL 數字跟蹤器音樂模塊(MOD)文件;Quake模 塊文件 2x
MDN Microsoft Access空資料庫模板 oz})Wl
MDS Alcohol的文件格式J
MDW Microsoft Access工作組文件 EQ0M=
MDZ Microsoft Access向導模板文件 |`m
MED 音樂編輯器,OctaMED音樂模塊(MOD)文件 CT;7A
MER 電子表格/資料庫數據交換格式;FileMaker、Excel及其他軟體能識別 [+G*!^
MET 表示管理器元文件 .2
MFG Pro/ENGINEER製造文件 4mA>>6
MGF 在材料與幾何學里的文件格式 d!]
MHTM,MHTML MHTML文檔(MIME) xV\Y<P
MI 雜項 ~`
MIC Microsoft Image Composer文件 Qch`>q
MID MIDI音樂 ->E
MIF Adobe FramMaker交換格式 d
MIFF 與機器無關格式文件 lF
MIM,MIME,MME Internet郵件擴展格式的多用途文件,經常作為發送e-mail時在AOL里附件而創建的文件;在一個多區MIM文件里的文件能用WinZip或其他類似程序打開 J
MLI 3D Studio的材料庫格式文件 })yQ)q
MMF Meal Master格式;一個處方類格式;Microsoft郵件文件 b+
MMG 超過20/20表或集會數據文件 0</!,0
MMM Microsoft多媒體電影 VH
MMP Mindmapor Mind Manager文件 %SW
MN2 Descent2任務文件 S5o#q,
MND,MNI Mandelbort for Windows A?+3
MNG 多映像網路圖形 aOf
MNT,MNX Microsoft FoxPro菜單文件 &ZP
MNU Visual dBASE菜單文件;Intertel Systems Interact菜單文件 E=L
MOD Fast Tracker、Star Trekker、Noise Tracker(等等)音樂模塊文件;Microsoft多計劃電子表格;Amiga/PC磁軌文件 w!O[Ak
MOV QuickTime for Windows電影 e
MP2 第二層MPEG音頻文件 }Q0C
MP3 第三層MPEG音頻文件 !LOVFf
MPA MPEG相關文件,MIME"mpeg類型" R_QWp
MPE,MPEG,MPG MPEG動畫文件 `M4
MPP Microsoft工程文件;CAD繪圖文件格式 Qm5Z
MPR Microsoft FoxPro菜單(已編譯) O~<7
MRI MRI掃描文件 DfM
MSA 魔術陰影檔案 k
MSDL Manchester的場景描述語言 &N
MSG Microsoft郵件消息 |Uik_
MSI Windows 安裝器包 F
MSN Microsoft網路文檔;Descent Mission文件 ;e8G
MSP Microsoft Paint(畫圖)點陣圖文件;Windows Installer路徑文件 }d1,
MST Windows 安裝器傳輸文件 zy40
MTM Multi 跟蹤器音樂模塊(MOD)文件 X
MUL Ultima在線 6
MUS 音樂 d)&o
MUS10 Mus10聲音 -H
MVB Microsoft多媒體查看器文件 #c
MWP Lotus WordPro 97 Smart Master文件 mC%[
NAN Nanoscope文件(Raw Grayscale) Qz4z
NAP NAP元文件 ,U
NCB Microsoft Developer Studio文件 @t
NCD Norton改變目錄 v7/
NCF NetWare命令文件;Lotus Notes內部剪切板 "oX
NDO 3D 低多邊形建模器,Nendo W8uT
netCDF 網路公用數據表單 x%8]s
NFF 中性文件格式 -J&@
NFT NetObject Fusion模板文件 <6R
NIL Norton游標庫文件(EasyIcons-兼容) v
NIST NIST Sphere聲音 e}2A
NLB Oracle 7數據 x)&\
NLM NetWare可裝載模塊 2#
NLS 用於本地化的國家語言支持文件(例如,Uniscape) ^$7x4B
NLU Norton Live Update e-mail 觸發器文件 dcK
NOD NetObject Fusion文件 g-=}8
NSF Lotus Notes資料庫 tG,L
NSO NetObject Fusion文檔文件 `"
NST Noise Tracker音樂模塊(MOD)文件 E0m0}
NS2 Lotus Notes資料庫(第二版) u
NTF Lotus Notes資料庫模板 r)@HJ
NTX CA-Clipper索引文件 L
NWC Noteworthy Composer歌曲文件 "Kl
NWS Microsoft Outlook Express新聞消息(MIME RFC822) '|)
O01 台風聲音文件 }u5t{
OBD Microsoft Office活頁夾 `|NkXj
OBJ 對象文件 OrZicI
OBZ Microsoft Office活頁夾向導 .U*M
OCX Microsoft對象鏈接與嵌入定製控制項 }
ODS Microsoft Outlook Express郵箱文件 @
OFF 3D 網狀物對象文件格式 c)(J
OFN Microsoft Office FileNew文件 j+R
OFT Microsoft Outlook模板 )+(
OKT Oktalyzer音樂模塊(MOD)文件 \
OLB OLE對象庫 c<
OLE OLE對象 r$L>
OOGL 面向對象圖形庫xx% T0
OPL 組織者編程語言源文件——Psion/Symbian &*5K
OPO OPL輸出可執行文件 QPO
OPT Microsoft Developer Studio文件 ^>R
OPX OPL擴展DLL(動態鏈接庫) i\mRK
ORA Oracle 7 配置文件 f4t
ORC Oracle 7腳本文件 8
ORG Lotus Organizer 文件 YtC$
OR2 Lotus Organizer 2 文件 ,x~Z?
OR3 Lotus Organizer 97 文件 -
OSS Microsoft Office查找文件 |2D
OST Microsoft Exchange / Outlook 離線文件 rpG
OTL Super NoteTab 模板文件 &
OUT C語言輸出文件 [
continue V@BEA
P3 Primavera Project Planner(工程設計器)文件 ]Hzi
P10 Tektronix Plot 10 繪圖文件 E7C-8
P65 PageMaker 6.5文件 <8}t
P7C Digital ID 文件(MIME) G.yZi>
PAB Microsoft個人地址簿 bEA
PAC SB Studio Ⅱ 包 9%
PAK Quake WAD文件 ]'e$
PAL 壓縮文件 \*O
PART Go!Zilla部分下載文件 +#
PAS Pascal源代碼 BJHD[
PAT DataCAD Hatch模式文件;CorelDRAW模式;高級Gravis Ultrasound / Forte 技術;碎片文件 8n4!J
PBD PowerBuilder動態庫,作為本地DLL的一個替代物 ,s-fY"
PBF Turtle Beach的Pinnacle 銀行文件 B
PBK Microsoft PhoneBook(電話簿):qR
&;南平IT論壇 -- 南平IT -- IT的南平,走進網路人生,走進IT }F
PBL 用於訶owerBuilder開發環境中的PowerBuilder動態庫 vTiwm
PBM 可導出點陣圖 JI
PBR PowerBuilder資源 w8_/w*
PCD Kodak Photo-CD映像;P-Code編譯器測試腳本,由Microsoft測試與Microsoft Visual測試 ^
PCE Maps Eudora郵箱名字的DOS文件名 b
PCL Hewlett-Packard 列印機控制語言文件(列印機備用點陣圖) ih7T
PCM 聲音文件格式;OKI MSM6376 合成晶元 PCM格式 +[@
PCP Symantec Live Update Pro文件 Ply]
PCS PICS動畫文件 yF
PCT Macintosh PICT籜�募?<.tJ%8
PCX Zsoft PC畫筆點陣圖 !pN
PDB 3Com PalmPilot資料庫文件 w(I+S
PDD 可以用Paint Shop Pro或其他圖像處理軟體打開的圖形圖像 Et
PDF Adobe Acrobat 可導出文檔格式文件(可用Web瀏覽器顯示);Microsoft系統管理伺服器包定義文件;NetWare列印機定義文件 ^.@cTR
PDP Broderbund的Print Shop Deluxe文件 vo_
PDQ Patton&Patton Flowercharting PDQ Lite 文件 YF
PDS 攝影圖像文件(該文件格式的來源不清楚) ^e_
PF Aladdin系統對私人文件進行加密的文件 ly=4'Q
PFA 類型1字體(ASCⅡ) lO
PFB 類型1字體(二進制) E
PFC PF組件 |()m8*
PFM 列印機字體尺度 P8[z
PGD 良好隱私(Pretty Good Privacy,PGP)虛擬磁碟文件 ~&
PGL HP繪圖儀繪圖文件 |aEvA
PGM 可輸出灰度圖(點陣圖) @
PGP 用良好隱私(PGP)演算法加密文件 UC
PH 由Microsoft幫助文件編譯器產生的臨時文件 [#).
PHP,PHP3 包含有PHP腳本的HTML網頁 Dg_
PHTML 包含有PHP腳本的HTML網頁;由Perl分析解釋的HTML Co}
PIC PC畫圖點陣圖;Lotus圖片;Macintosh PICT繪圖 OP!wL
PICT Macintosh PICT圖形文件 '&.su/
PIF 程序信息文件;IBM PIF繪圖文件 ^E
PIG LucasArts的Dark Forces WAD文件 )fFy<
PIN Epic Pinball數據文件 YV
PIX 內置系統點陣圖 1
PJ MKS源完整性文件 ?$#>
PJX,PJT Microsoft Visual FoxPro工程文件 8g
PKG Microsoft Developer Studio應用程序擴展(與DLL文件類似) {fLE
PKR PGP的公用鑰匙環 9
PL Perl程序 0}m
PLG 由REND386/AVRIL使用的文件格式 ;V`t1R
PLI Oracle 7數據描述 &c
PLM Discorder Tracker2模塊 ,""z"a
PLS Disorder Tracker2抽樣文件;MPEG PlayList文件(由WinAmp使用) FG
PLT HPGL繪圖儀繪圖文件;AutoCAD plot繪圖文件;Gerber標志製作軟體 PV
PM5 Pagemaker 5.0文件 F}s\Kd
PM6 Pagemaker 6.0文件 8
PNG 可移植的網路圖形點陣圖;Paint Shop Pro瀏覽器目錄 v2W3
PNT,PNTG MacPaint圖形文件 UTLLO,
POG Descent2 PIG文件擴展 q
POL Windows NT策略文件 qF
POP Visual dBASE上托文件 Rud`Zc
POT Microsoft Powerpoint模塊 q
POV 視頻射線跟蹤器暫留 tNYRO
PP4 Picture Publisher 4點陣圖 ,
PPA Microsoft Powerpoint內插器 C9
PPF Turtle Beach的Pinnacle程序文件 Zi
PPM 可移植的象素映射點陣圖 v`
PPP Parson Power Publisher;Serif PagePlus桌面出版預設輸出 FBJqM
PPS Microsoft Powerpoint幻燈片放映 X
PPT Microsoft Powerpoint演示文稿 UBCFe&
PQI PowerQuest驅動器圖像文件 w#Et6Z
PRC 3COM PalmPiltt資源(文本或程序)文件 5uj5a1
PRE Lotus Freelance演示文稿 (J0&E
PRF Windows系統文件,Macromedia導演設置文件 .ow
PRG dBASE Clipper和FoxPro程序源文件;WAVmaker程序 w_HT
PRJ 3D Studio(DOS)工程文件 wa
PRN 列印表格(用空格分隔的文本);DataCAD Windows列印機文件 um
PRP Oberson的Prospero數據轉換產品保存的工程文件 $|
PRS Harvard Graphics for Windows演示文件 .M:]I1
PRT 列印格式化文件;Pro/ENGINEER元件文件 -*lUC?
PRV PsiMail Internet提供者模板文件 Y
PRZ Lotus Freelance Graphics 97文件 !
PS Postscript格式化文件(PostScript列印機可讀文件) c
PSB Pinnacle Sound Bank 86*'nl
PSD Adobe photoshop點陣圖文件 b_
PSI PSION a-Law聲音文件 ~?
PSM Protracker Studio模型格式;Epic游戲的源數據文件 ;xt$sW
PSP Paint Shop Pro圖像文件 (
PST Microsoft Outlook個人文件夾文件 Wi
PTD Pro/ENGINEER表格文件 Hp*=[h
PTM Polytracker音樂模塊(MOD)文件 l7Z=qb
PUB Ventura Publisher出版物;Microsoft Publisher文檔 MA".pQ
PWD Microsoft Pocket Word文檔 g~$p0
PWL Windows 95口令列表文件+r
PWP Photoworks圖像文件(能被Photoworks瀏覽的一系列文件) {0&qE
PWZ Microsoft Powerpoint向導 o+5T
PXL Microsoft Pocket Excel電子表格 !l[s
PY 來自Yahoo的電子消息;Python腳本文件 {7"Ef
PYC Python腳本文件 ]
QAD PF QuickArt文檔 Tc>G
QBW QuickBooks for Windows文件 .S
QDT 來自Quicken UK的QuickBooks數據文件,帳目/稅/貨單程序 wpW*,
QD3D Apple的QuickDraw 3D元文件格式 N#q
QFL FAMILY LAWYER文檔 l|
QIC Microsoft備份文件 =3d
QIF QuickTime相關圖像(MIME);Quicken導入文件 ObQ
QLB Quick庫 @UsI9
QM Quality Motion文件 A.@-
QRY Microsoft查詢文件 ?Wfz
QST Quake Spy Tab文件 7q"
QT,QTM QuickTime電影 f('VM
QTI,QTIF QuickTime相關圖像 0ZO&c
QTP QuickTime優先文件 !
QTS Mac PICT圖像文件;QuickTime相關圖像 ,(tkd
QTX QuickTime相關圖像 "%%lf
QW Symantec Q&A Write程序文件 ,L0ke
QXD Quark XPress文件 c
R Pegasus郵件資源文件 |V
RA RealAudio聲音文件 [ed%
RAM RealAudio元文件 jY #=i
RAR RAR壓縮檔案(Eugene Roshall格式) kijhrf
RAS Sun光柵圖像點陣圖 V
RAW RAW文件格式(點陣圖);Raw標識的PCM數據 SadzLD
RBH 由RoboHELP維持的RBH文件,它加入到一個幫助工程文件的信息中 ZL5
RDF 資源描述框架文件(涉及XML和元數據) r
RDL Descent注冊水平文件 uuHdS
REC 錄音機宏;RapidComm聲音文件 s$lq
REG 注冊表文件 t/Pwm_
REP Visual dBASE報表文件 24
RES Microsoft Visual C++資源文件 pf
RFT 可修訂的表單文本(IBM的DCA一部分或文檔內容框架結構一部分) g4
RGB,SGI Silicon圖形RGB文件 QwR
RLE Run-Length編碼的點陣圖 ;C
RL2 Descent2注冊水平文件 s\k:
RM RealAudio視頻文件 _Qhk
RMD Microsoft RegMaid文檔 V]A,
RMF Rich Map格式(3D游戲編輯器使用它來保存圖) uKC
RMI M1D1音樂 tD\Y3
ROM 基於盒式磁帶的家庭游戲模擬器文件(來自Atari 2600、Colecovision、Sega、Nintendo等盒式磁帶里的ROM完全拷貝,在兩個模擬器之間不可互修改) 7R;
ROV Rescue Rover數據文件 {
RPM RedHat包管理器包(用於Linux) o{m
RPT Microsoft Visual Basic Crystal報表文件 8A+<l
RRS Ace game Road Rash保存的文件 Z0
RSL Borland的Paradox 7報表 '20J#D
RSM WinWay Resume Writer恢復文件 Yr|
RTF Rich Text格式文檔 Pcy
RTK RoboHELP使用的用來模擬Windows幫助的搜索功能 C!,
RTM Real Tracker音樂模塊(MOD)文件 vZ
RTS RealAudio的RTSL文檔;RoboHELP對復雜操作進行加速 Hx{!S
RUL InstallShield使用的擴展名 ;
RVP Microsoft Scan配置文件(MIME) ]Yl-V
Rxx 多卷檔案上的RAR壓縮文件(xx= 1~99間的一個數字) Pfo.z
S 匯編源代碼文件 D*
S3I Scream Tracker v3設備 "e0
S3M Scream Tracker v3的聲音模塊文件 g&2$t1
SAM Ami專業文檔;8位抽樣數據)\
SAV 游戲保存文件 HN)62
SB 原始帶符號位元組(8位)數據 jMhd,@
SBK Creative Labs的Soundfont 1.0 Bank文件;(Soundblaster)/EMU SonndFont v1.x Bank文件 2
SBL Shockwave Flash對象文件 0v4'hN
SC2 Microsoft Schele+7文件格式;SAS目錄(Windows 95/NT、OS/2、Mac) MEzi
SC3 SimCity 3000保存的游戲文件 %
SCC Microsoft Source Safe文件 3u
SCD Matrix/Imapro SCODL幻燈片圖像;Microsoft Schele +7 jN
SCF Windows Explorer命令文件 ^dxYg
SCH Microsoft Schele+1 n
SCI ScanVec Inspire本地文件格式 ]Gv
SCN True Space 2場景文件 3c
SCP 撥號網路腳本文件 qXP{YP
SCR Windows屏幕保護;傳真圖像;腳本文件 U@V
SCT SAS目錄(DOS);Scitex CT點陣圖;Microsoft FoxPro表單 PETt8&
SCT01 SAS目錄(UNIX) W]
SCV ScanVec CASmate本地文件格式 867O%
SCX Microsoft FoxPro表單文件 6B|
SD Sound Designer 1聲音文件 O7
SD2 Sound Designer 2展平文件/數據分X指令;SAS資料庫(Windows 95/NT、OS/2、Mac) q5'nG
SDF 系統數據文件格式—Legacy Unisys(Sperry)格式 Vi#
SDK Roland S—系列軟盤映像 B
SDL Smart Draw庫文件 G$
SDR Smart Draw繪圖文件 eXzu
SDS 原始Midi抽樣轉儲標准文件 r`YE($
SDT SmartDraw模板 #'R?
SDV 分號分隔的值文件 Q`Q
SDW Lotus WordPro圖形文件;原始帶符號的DWORD(32位)數據 -q%8<
SDX 由SDX壓縮的Midi抽樣轉儲標准文件 b v
SEA 自解壓檔案(Stufflt for Macintosh或其他軟體使用的文件) cR{
SEP 標簽圖像文件格式(TIFF)點陣圖 X`B
SES Cool Edit Session文件(普通數據聲音編輯器文件) ~
SF IRCAM聲音文件格式 I#B|j[
SF2 Emu Soundfont v2.0文件;Creative Labs的Soundfont 2.0 Bank文件(Sound Blaster) #y
SFD SoundStage聲音文件數據 0i
SFI Sound Stage聲音文件信息 ?/-
SFR Sonic Foundry Sample資源 Q{8r
SFW Seattle電影工程(損壞的JPEG) LO
SFX RAR自解壓檔案 Ws
SGML 標准通用標簽語言 $l-h
SHB Corel Show演示文稿;文檔快捷文件 \
SHG 熱點點陣圖 Cig
SHP 3D Studio(DOS)形狀文件;被一些應用程序用於多部分交互三角形模型的3D建模 rws|
SHS Shell scrap文件;據載用於發送"口令盜竊者" ~lI
SHTML 含有伺服器端包括(SSI)的HTML
❺ 如何關掉 mtd驅動的debug信息
驅動程序開發的一個重大難點就是不易調試。本文目的就是介紹驅動開發中常用的幾種直接和間接的調試手段,它們是:
1、利用printk
2、查看OOP消息
3、利用strace
4、利用內核內置的hacking選項
5、利用ioctl方法
6、利用/proc 文件系統
7、使用kgdb
前兩種如下:
一、利用printk
這是驅動開發中最朴實無華,同時也是最常用和有效的手段。scull驅動的main.c第338行如下,就是使用printk進行調試的例子,這樣的例子相信大家在閱讀驅動源碼時隨處可見。
338 // printk(KERN_ALERT "wakeup by signal in process %d\n", current->pid);
printk的功能與我們經常在應用程序中使用的printf是一樣的,不同之處在於printk可以在列印字元串前面加上內核定義的宏,例如上面例子中的KERN_ALERT(注意:宏與字元串之間沒有逗號)。
#define KERN_EMERG ""
#define KERN_ALERT ""
#define KERN_CRIT ""
#define KERN_ERR ""
#define KERN_WARNING ""
#define KERN_NOTICE ""
#define KERN_INFO ""
#define KERN_DEBUG ""
#define DEFAULT_CONSOLE_LOGLEVEL 7
這個宏是用來定義需要列印的字元串的級別。值越小,級別越高。內核中有個參數用來控制是否將printk列印的字元串輸出到控制台(屏幕或者/sys/log/syslog日誌文件)
# cat /proc/sys/kernel/printk
6 4 1 7
第一個6表示級別高於(小於)6的消息才會被輸出到控制台,第二個4表示如果調用printk時沒有指定消息級別(宏)則消息的級別為4,第三個1表示接受的最高(最小)級別是1,第四個7表示系統啟動時第一個6原來的初值是7。
因此,如果你發現在控制台上看不到你程序中某些printk的輸出,請使用echo 8 > /proc/sys/kernel/printk來解決。
在復雜驅動的開發過程中,為了調試會在源碼中加入成百上千的printk語句。而當調試完畢形成最終產品的時候必然會將這些printk語句刪除想想驅動的使用者而不是開發者吧。記住:己所不欲,勿施於人),這個工作量是不小的。最要命的是,如果我們將調試用的printk語句刪除後,用戶又報告驅動有bug,所以我們又不得不手工將這些上千條的printk語句再重新加上。oh,my god,殺了我吧。所以,我們需要一種能方便地打開和關閉調試信息的手段。哪裡能找到這種手段呢?哈哈,遠在天邊,近在眼前。看看scull驅動或者leds驅動的源代碼吧!
#define LEDS_DEBUG
#undef PDEBUG
#ifdef LEDS_DEBUG
#ifdef __KERNEL__
#define PDEBUG(fmt, args…) printk( KERN_EMERG "leds: " fmt, ## args)
#else
#define PDEBUG(fmt, args…) fprintf(stderr, fmt, ## args)
#endif
#else
#define PDEBUG(fmt, args…)
#endif
#undef PDEBUGG
#define PDEBUGG(fmt, args…)
這樣一來,在開發驅動的過程中,如果想列印調試消息,我們就可以用PDEBUG("address of i_cdev is %p\n", inode->i_cdev);,如果不想看到該調試消息,就只需要簡單的將PDEBUG改為PDEBUGG即可。而當我們調試完畢形成最終產品時,只需要簡單地將第1行注釋掉即可。
上邊那一段代碼中的__KERNEL__是內核中定義的宏,當我們編譯內核(包括模塊)時,它會被定義。當然如果你不明白代碼中的…和##是什麼意思的話,就請認真查閱一下gcc關於預處理部分的資料吧!如果你實在太懶不願意去查閱的話,那就充當VC工程師把上面的代碼到你的代碼中去吧。
二、查看OOP消息
OOP意為驚訝。當你的驅動有問題,內核不驚訝才怪:嘿!小子,你干嗎亂來!好吧,就讓我們來看看內核是如何驚訝的。
根據faulty.c(單擊下載)編譯出faulty.ko,並 insmod faulty.ko。執行echo yang >/dev/faulty,結果內核就驚訝了。內核為什麼會驚訝呢?因為faulty驅動的write函數執行了*(int *)0 = 0,向內存0地址寫入,這是內核絕對不會容許的。
52 ssize_t faulty_write (struct file *filp, const char __user *buf, size_t count,
53 loff_t *pos)
54 {
55
56 *(int *)0 = 0;
57 return 0;
58 }
1 Unable to handle kernel NULL pointer dereference at virtual address 00000000
2 pgd = c3894000
3 [00000000] *pgd=33830031, *pte=00000000, *ppte=00000000
4 Internal error: Oops: 817 [#1] PREEMPT
5 Moles linked in: faulty scull
6 CPU: 0 Not tainted (2.6.22.6 #4)
7 PC is at faulty_write+0×10/0×18 [faulty]
8 LR is at vfs_write+0xc4/0×148
9 pc : [] lr : [] psr: a0000013
10 sp : c3871f44 ip : c3871f54 fp : c3871f50
11 r10: 4021765c r9 : c3870000 r8 : 00000000
12 r7 : 00000004 r6 : c3871f78 r5 : 40016000 r4 : c38e5160
13 r3 : c3871f78 r2 : 00000004 r1 : 40016000 r0 : 00000000
14 Flags: NzCv IRQs on FIQs on Mode SVC_32 Segment user
15 Control: c000717f Table: 33894000 DAC: 00000015
16 Process sh (pid: 745, stack limit = 0xc3870258)
17 Stack: (0xc3871f44 to 0xc3872000)
18 1f40: c3871f74 c3871f54 c0088eb8 bf00608c 00000004 c38e5180 c38e5160
19 1f60: c3871f78 00000000 c3871fa4 c3871f78 c0088ffc c0088e04 00000000 00000000
20 1f80: 00000000 00000004 40016000 40215730 00000004 c002c0e4 00000000 c3871fa8
21 1fa0: c002bf40 c0088fc0 00000004 40016000 00000001 40016000 00000004 00000000
22 1fc0: 00000004 40016000 40215730 00000004 00000001 00000000 4021765c 00000000
23 1fe0: 00000000 bea60964 0000266c 401adb40 60000010 00000001 00000000 00000000
24 Backtrace:
25 [] (faulty_write+0×0/0×18 [faulty]) from [] (vfs_write+0xc4/0×148)
26 [] (vfs_write+0×0/0×148) from [] (sys_write+0x4c/0×74)
27 r7:00000000 r6:c3871f78 r5:c38e5160 r4:c38e5180
28 [] (sys_write+0×0/0×74) from [] (ret_fast_syscall+0×0/0x2c)
29 r8:c002c0e4 r7:00000004 r6:40215730 r5:40016000 r4:00000004
30 Code: e1a0c00d e92dd800 e24cb004 e3a00000 (e5800000)
1行驚訝的原因,也就是報告出錯的原因;
2-4行是OOP信息序號;
5行是出錯時內核已載入模塊;
6行是發生錯誤的CPU序號;
7-15行是發生錯誤的位置,以及當時CPU各個寄存器的值,這最有利於我們找出問題所在地;
16行是當前進程的名字及進程ID
17-23行是出錯時,棧內的內容
24-29行是棧回溯信息,可看出直到出錯時的函數遞進調用關系(確保CONFIG_FRAME_POINTER被定義)
30行是出錯指令及其附近指令的機器碼,出錯指令本身在小括弧中
反匯編faulty.ko( arm-linux-objmp -D faulty.ko > faulty.dis ;cat faulty.dis)可以看到如下的語句如下:
0000007c :
7c: e1a0c00d mov ip, sp
80: e92dd800 stmdb sp!, {fp, ip, lr, pc}
84: e24cb004 sub fp, ip, #4 ; 0×4
88: e3a00000 mov r0, #0 ; 0×0
8c: e5800000 str r0, [r0]
90: e89da800 ldmia sp, {fp, sp, pc}
定位出錯位置以及獲取相關信息的過程:
9 pc : [] lr : [] psr: a0000013
25 [] (faulty_write+0×0/0×18 [faulty]) from [] (vfs_write+0xc4/0×148)
26 [] (vfs_write+0×0/0×148) from [] (sys_write+0x4c/0×74)
出錯代碼是faulty_write函數中的第5條指令((0xbf00608c-0xbf00607c)/4+1=5),該函數的首地址是0xbf00607c,該函數總共6條指令(0×18),該函數是被0xc0088eb8的前一條指令調用的(即:函數返回地址是0xc0088eb8。這一點可以從出錯時lr的值正好等於0xc0088eb8得到印證)。調用該函數的指令是vfs_write的第49條(0xc4/4=49)指令。
達到出錯處的函數調用流程是:write(用戶空間的系統調用)–>sys_write–>vfs_write–>faulty_write
OOP消息不僅讓我定位了出錯的地方,更讓我驚喜的是,它讓我知道了一些秘密:1、gcc中fp到底有何用處?2、為什麼gcc編譯任何函數的時候,總是要把3條看上去傻傻的指令放在整個函數的最開始?3、內核和gdb是如何知道函數調用棧順序,並使用函數的名字而不是地址? 4、我如何才能知道各個函數入棧的內容?哈哈,我漸漸喜歡上了讓內核驚訝,那就再看一次內核驚訝吧。
執行 cat /dev/faulty,內核又再一次驚訝!
1 Unable to handle kernel NULL pointer dereference at virtual address 0000000b
2 pgd = c3a88000
3 [0000000b] *pgd=33a79031, *pte=00000000, *ppte=00000000
4 Internal error: Oops: 13 [#2] PREEMPT
5 Moles linked in: faulty
6 CPU: 0 Not tainted (2.6.22.6 #4)
7 PC is at vfs_read+0xe0/0×140
8 LR is at 0xffffffff
9 pc : [] lr : [] psr: 20000013
10 sp : c38d9f54 ip : 0000001c fp : ffffffff
11 r10: 00000001 r9 : c38d8000 r8 : 00000000
12 r7 : 00000004 r6 : ffffffff r5 : ffffffff r4 : ffffffff
13 r3 : ffffffff r2 : 00000000 r1 : c38d9f38 r0 : 00000004
14 Flags: nzCv IRQs on FIQs on Mode SVC_32 Segment user
15 Control: c000717f Table: 33a88000 DAC: 00000015
16 Process cat (pid: 767, stack limit = 0xc38d8258)
17 Stack: (0xc38d9f54 to 0xc38da000)
18 9f40: 00002000 c3c105a0 c3c10580
19 9f60: c38d9f78 00000000 c38d9fa4 c38d9f78 c0088f88 c0088bb4 00000000 00000000
20 9f80: 00000000 00002000 bef07c80 00000003 00000003 c002c0e4 00000000 c38d9fa8
21 9fa0: c002bf40 c0088f4c 00002000 bef07c80 00000003 bef07c80 00002000 00000000
22 9fc0: 00002000 bef07c80 00000003 00000000 00000000 00000001 00000001 00000003
23 9fe0: 00000000 bef07c6c 0000266c 401adab0 60000010 00000003 00000000 00000000
24 Backtrace: invalid frame pointer 0xffffffff
25 Code: ebffff86 e3500000 e1a07000 da000015 (e594500c)
26 Segmentation fault
不過這次驚訝卻令人大為不解。OOP竟然說出錯的地方在vfs_read(要知道它可是大拿們千錘百煉的內核代碼),這怎麼可能?哈哈,萬能的內核也不能追蹤函數調用棧了,這是為什麼?其實問題出在faulty_read的43行,它導致入棧的r4、r5、r6、fp全部變為了0xffffffff,ip、lr的值未變,這樣一來faulty_read函數能夠成功返回到它的調用者——vfs_read。但是可憐的vfs_read(忠實的APTCS規則遵守者)並不知道它的r4、r5、r6已經被萬惡的faulty_read改變,這樣下去vfs_read命運就可想而知了——必死無疑!雖然內核很有能力,但缺少了正確的fp的幫助,它也無法追蹤函數調用棧。
36 ssize_t faulty_read(struct file *filp, char __user *buf,
37 size_t count, loff_t *pos)
38 {
39 int ret;
40 char stack_buf[4];
41
42
43 memset(stack_buf, 0xff, 20);
44 if (count > 4)
45 count = 4;
46 ret = _to_user(buf, stack_buf, count);
47 if (!ret)
48 return count;
49 return ret;
50 }
00000000 :
0: e1a0c00d mov ip, sp
4: e92dd870 stmdb sp!, {r4, r5, r6, fp, ip, lr, pc}
8: e24cb004 sub fp, ip, #4 ; 0×4
c: e24dd004 sub sp, sp, #4 ; 0×4,這里為stack_buf[]在棧上分配1個字的空間,局部變數ret使用寄存器存儲,因此就不在棧上分配空間了
10: e24b501c sub r5, fp, #28 ; 0x1c
14: e1a04001 mov r4, r1
18: e1a06002 mov r6, r2
1c: e3a010ff mov r1, #255 ; 0xff
20: e3a02014 mov r2, #20 ; 0×14
24: e1a00005 mov r0, r5
28: ebfffffe bl 28 //這里在調用memset
78: e89da878 ldmia sp, {r3, r4, r5, r6, fp, sp, pc}
這次OOP,深刻地認識到:
內核能力超強,但它不是,也不可能是萬能的。所以即使你能力再強,也要和你的team member搞好關系,否則在關鍵時候你會倒霉的;
出錯的是faulty_read,vfs_read卻做了替罪羊。所以人不要被表面現象所迷惑,要深入看本質;
內核本來超級健壯,可是你寫的驅動是內核的組成部分,由於它出錯,結果整體崩盤。所以當你加入一個團隊的時候一定要告誡自己,雖然你的角色也許並不重要,但你的疏忽大意將足以令整個非常牛X的團隊崩盤。反過來說,當你是team leader的時候,在選團隊成員的時候一定要慎重、慎重、再慎重,即使他只是一個小角色。
千萬別惹堆棧,它一旦出問題,定位錯誤將會是一件非常困難的事情。所以,千萬別惹你的領導,否則將死得很難看。
V
❻ 請問文件格式有哪幾種
文件後綴名大全在網上找的一些文件的後綴。供參考
ICA Citrix文件 |K
ICB Targa點陣圖文件 )
ICC Kodak列印機格式文件 q \q
ICL 圖標庫文件 ^gp
ICM 圖形顏色匹配配置文件 }-X
ICO Windows圖標 Y')~
IDB MSDev中間層文件 8y
IDD MIDI設備定義 .q
IDF MIDI設備定義(Windows 95需要的文件) <c
IDQ Internet數據查詢文件 e\K8
IDX Microsoft FoxPro相關資料庫索引文件;Symantec Q&A相關資料庫索引文件;Microsoft Outlook Express文件 6
IFF 交換格式文件;Amiga ILBM !}X
IGES 初始圖形交換說明文件 T=*
IGF 插入系統元文件 $!3
IIF QuickBooks for Windows交換文件 s?f(
ILBM 點陣圖圖形文件 o
IMA WinImage磁碟映像文件 YUa([$
IMG GEM映像 xC(@
IMZ WinImage壓縮磁碟映像文件 7-
INC 匯編語言或動態伺服器包含文件 a{9<s!
INF 信息文件 #jy4e
INI 初始化文件;MWave DSP Synth的"nwsynth.ini" GMS安裝;Cravis Ultrasound bank安裝 %>TSom
INP Oracle 3.0癤蛟縉詘奼鏡謀淼ピ創�?# |P
INRS INRS遠程通信聲頻 ;3Pi
INS InstallShield安裝腳本;X-Internet簽字文件;Ensoniq EPS字簇設備;Cell/ⅡMAC/PC抽樣設備 q.kpG)
INT 中間代碼,當一個源程序經過語法檢查後編譯產生一個可執行代碼 qa8cD-
IOF Findit文檔 83%
IQY Microsoft Internet查詢文件 |+
ISO 根據ISD 9660有關CD-ROM文件系統標准列出CD-ROM上的文件 _GEsK
ISP X-Internet簽字文件 <o
IST 數字跟蹤設備文件 2Lw*A
ISU InstallShield卸裝腳本 7;=
IT 脈沖跟蹤系統音樂模塊(MOD)文件 V
ITI 脈沖跟蹤系統設備 x?L
ITS 脈沖跟蹤系統抽樣,Internet文檔位置 c
IV Open Inventor中使用的文件格式 ^]\
IVD 超過20/20微觀數據維數或變數等級文件 No,
IVP 超過20/20的用戶子集配置文件 Cnr
IVT 超過20/20表或集合數據文件 2
IVX 超過20/20微數據目錄文件 l?FmS
IW Idlewild屏幕保護程序 "=3
IWC Install Watch文檔 )T
J62 Ricoh照相機格式 _i> am
JAR Java檔案文件(一種用於applet和相關文件的壓縮文件) M
JAVA Java源文件 I
JBF Paint Shop Pro圖像瀏覽文件 -<D+>e
JFF,JFIF,JIF JPEG文件 dy
JMP SAS的JMPDiscovery表格統計文件 `K)tm
JN1 Epic MegaGames的Jill of the Jungle數據文件 Nk
JPE,JPEG,JPG JPEG圖形文件 ^V
JS javascript源文件 J7~[S
JSP HTML網頁,其中包含有對一個Java servlet的參考 pKCD
JTF JPEG點陣圖文件 )"lf
K25 Kurzweil 2500抽樣文件 ex$CA
KAR 卡拉OK MIDI文件(文本+MIDI) 7I
KDC Kodak光增強器 ,vW~O)
KEY DataCAD圖標工具條文件 _Rw,
KFX KoFak Group 4圖像文件 5y88rO
KIZ Kodak數字明信片文件 @*"7B0
KKW RoboHELP幫助工程索引設計器中與主題無關的K開頭的所有關鍵字 G}
KMP Korg Trinity KeyMap文件 GO^.pO
KQP Konica照相機本地文件 c 5!Q-
KR1 Kurzweil 2000抽樣(多軟碟機)文件 >
KRZ Kurzweil 2000抽樣文件 yB>Z1
KSF Korg Trinity抽樣文件 %Ur't'
KYE Kye游戲數據 !
LAB Visual dBASE標簽文件 `F
LBM Deluxe Paint點陣圖文件 Wd{.
LBT,LBX Microsoft FoxPro標簽文件v~Fsi
2005-10-20 10:24:35 Li-Birch
等級:超級版主
文章:82
積分:909
門派:無門無派
注冊:2005年9月21日第 2 樓
--------------------------------------------------------------------------------
LDB Microsoft Access加鎖文件 ZTm
LDL Corel Paradox分發庫 {
LEG Legacy文檔 c^>~
LES Logitech娛樂系統游戲配置文件(與REC文件一樣) 9&6
LFT 3D Studio(DOS)放樣文件 5-c>
LGO Paintbrush(Microsoft畫圖應用程序)的徽標文件 QV.
LHA LZH更換文件後綴 qf
LIB 庫文件 XU/
LIN DataCAD線型文件 `A|D53
LIS 結構化查詢報告(SQR)程序產生的輸出文件 i
LLX Laplink交換代理 jSw
LNK Windows快捷方式文件 \
LOG [非法語句]志文件 %W#[4L
LPD Helix Nut和Bolt文件 >
LRC Intel可視電話文件 *Smf
LSL Corel Paradox保存的庫文件 V
LSP AutoLISP、CommonLISP和其他LISP語言文件 FS83
LST 列表文件 o7
LU ThoughtWing庫單元文件 k
LVL Parallax Software的 Miner Descent/D2 Level擴展p"MT:
LWLO Lightwave分層對象文件 >2nwls
LWOB Lightwave對象文件 lpk
LWP Lotus WordPro 96/97文件 r
LWSC Lightwave視景文件 e
LYR DataCAD層文件 =;F|d-
LZH LH ARC壓縮檔案 }
LZS Skyroads數據文件 W}YC
M1V MPEG相關文件(MIME"mpeg"類型) [Sy
M3D Corel Motion 3D動畫文件 ?zO\:
M3U MPEG URL(MIME聲音文件) h*K~
MAC MacPaint圖像文件 4
MAD Microsoft Access模塊文件 _?Z
MAF Microsoft Access表單文件 a-Z0
MAG 在一些[非法語句]本文件中發現的圖形文件格式 C?p$
MAGIC 魔力郵件監視器配置文件 *p}Z{F
MAK Visual Basil或Microsoft Visual C++工程文件 b}$
MAM Microsoft Access宏 q[Jcq
MAN UNIX手冊頁輸出 ^ub\\
MAP 映射文件;Duke Nukem 3D WAD游戲文件 M
MAQ Microsoft Access查詢文件 Z>uK:
MAR Microsoft Access報表文件 JIH3
MAS Lotus Freelance Graphics Smart Master文件 p!]
MAT Microsoft Access表;3D Studio MAX材料庫 z1
MAUD MAUD抽樣格式 [}8
MAX Kinetx的3DStudio MAX文件;該格式用於一個3D場景文件;Paperport文件;OrCAD設計文件 ;7<c<r
MAZ Hover迷路數據;Division的dVS/dVISE使用的文件格式 ^/
MB1 Apogee Monster Bash數據文件 kDcc>
MBOX Berkeley Unix郵箱格式 &46
MBX Microsoft Outlook保存email格式;Eudora郵箱 LVsi4D
MCC Dailerl0呼叫卡 bR%
MCP Metrowerks CodeWarrior工程文件 yac*
MCR DataCAD鍵盤宏文件 {,
MCW Microsoft Word的Macintosh文檔 }
MDA Microsoft Access內抽入器;Microsoft Access 2.0版及其後續版本的工作組事件 "
MDB Microsoft Access資料庫 &7&5(
MDE Microsoft Access MDE文件 #mS
MDF Alcohol的文件格式Wu
MDL 數字跟蹤器音樂模塊(MOD)文件;Quake模 塊文件 2x
MDN Microsoft Access空資料庫模板 oz})Wl
MDS Alcohol的文件格式J
MDW Microsoft Access工作組文件 EQ0M=
MDZ Microsoft Access向導模板文件 |`m
MED 音樂編輯器,OctaMED音樂模塊(MOD)文件 CT;7A
MER 電子表格/資料庫數據交換格式;FileMaker、Excel及其他軟體能識別 [+G*!^
MET 表示管理器元文件 .2
MFG Pro/ENGINEER製造文件 4mA>>6
MGF 在材料與幾何學里的文件格式 d!]
MHTM,MHTML MHTML文檔(MIME) xV\Y<P
MI 雜項 ~`
MIC Microsoft Image Composer文件 Qch`>q
MID MIDI音樂 ->E
MIF Adobe FramMaker交換格式 d
MIFF 與機器無關格式文件 lF
MIM,MIME,MME Internet郵件擴展格式的多用途文件,經常作為發送e-mail時在AOL里附件而創建的文件;在一個多區MIM文件里的文件能用WinZip或其他類似程序打開 J
MLI 3D Studio的材料庫格式文件 })yQ)q
MMF Meal Master格式;一個處方類格式;Microsoft郵件文件 b+
MMG 超過20/20表或集會數據文件 0</!,0
MMM Microsoft多媒體電影 VH
MMP Mindmapor Mind Manager文件 %SW
MN2 Descent2任務文件 S5o#q,
MND,MNI Mandelbort for Windows A?+3
MNG 多映像網路圖形 aOf
MNT,MNX Microsoft FoxPro菜單文件 &ZP
MNU Visual dBASE菜單文件;Intertel Systems Interact菜單文件 E=L
MOD Fast Tracker、Star Trekker、Noise Tracker(等等)音樂模塊文件;Microsoft多計劃電子表格;Amiga/PC磁軌文件 w!O[Ak
MOV QuickTime for Windows電影 e
MP2 第二層MPEG音頻文件 }Q0C
MP3 第三層MPEG音頻文件 !LOVFf
MPA MPEG相關文件,MIME"mpeg類型" R_QWp
MPE,MPEG,MPG MPEG動畫文件 `M4
MPP Microsoft工程文件;CAD繪圖文件格式 Qm5Z
MPR Microsoft FoxPro菜單(已編譯) O~<7
MRI MRI掃描文件 DfM
MSA 魔術陰影檔案 k
MSDL Manchester的場景描述語言 &N
MSG Microsoft郵件消息 |Uik_
MSI Windows 安裝器包 F
MSN Microsoft網路文檔;Descent Mission文件 ;e8G
MSP Microsoft Paint(畫圖)點陣圖文件;Windows Installer路徑文件 }d1,
MST Windows 安裝器傳輸文件 zy40
MTM Multi 跟蹤器音樂模塊(MOD)文件 X
MUL Ultima在線 6
MUS 音樂 d)&o
MUS10 Mus10聲音 -H
MVB Microsoft多媒體查看器文件 #c
MWP Lotus WordPro 97 Smart Master文件 mC%[
2005-10-20 10:25:45 Li-Birch
等級:超級版主
文章:82
積分:909
門派:無門無派
注冊:2005年9月21日第 3 樓
--------------------------------------------------------------------------------
NAN Nanoscope文件(Raw Grayscale) Qz4z
NAP NAP元文件 ,U
NCB Microsoft Developer Studio文件 @t
NCD Norton改變目錄 v7/
NCF NetWare命令文件;Lotus Notes內部剪切板 "oX
NDO 3D 低多邊形建模器,Nendo W8uT
netCDF 網路公用數據表單 x%8]s
NFF 中性文件格式 -J&@
NFT NetObject Fusion模板文件 <6R
NIL Norton游標庫文件(EasyIcons-兼容) v
NIST NIST Sphere聲音 e}2A
NLB Oracle 7數據 x)&\
NLM NetWare可裝載模塊 2#
NLS 用於本地化的國家語言支持文件(例如,Uniscape) ^$7x4B
NLU Norton Live Update e-mail 觸發器文件 dcK
NOD NetObject Fusion文件 g-=}8
NSF Lotus Notes資料庫 tG,L
NSO NetObject Fusion文檔文件 `"
NST Noise Tracker音樂模塊(MOD)文件 E0m0}
NS2 Lotus Notes資料庫(第二版) u
NTF Lotus Notes資料庫模板 r)@HJ
NTX CA-Clipper索引文件 L
NWC Noteworthy Composer歌曲文件 "Kl
NWS Microsoft Outlook Express新聞消息(MIME RFC822) '|)
O01 台風聲音文件 }u5t{
OBD Microsoft Office活頁夾 `|NkXj
OBJ 對象文件 OrZicI
OBZ Microsoft Office活頁夾向導 .U*M
OCX Microsoft對象鏈接與嵌入定製控制項 }
ODS Microsoft Outlook Express郵箱文件 @
OFF 3D 網狀物對象文件格式 c)(J
OFN Microsoft Office FileNew文件 j+R
OFT Microsoft Outlook模板 )+(
OKT Oktalyzer音樂模塊(MOD)文件 \
OLB OLE對象庫 c<
OLE OLE對象 r$L>
OOGL 面向對象圖形庫xx% T0
OPL 組織者編程語言源文件——Psion/Symbian &*5K
OPO OPL輸出可執行文件 QPO
OPT Microsoft Developer Studio文件 ^>R
OPX OPL擴展DLL(動態鏈接庫) i\mRK
ORA Oracle 7 配置文件 f4t
ORC Oracle 7腳本文件 8
ORG Lotus Organizer 文件 YtC$
OR2 Lotus Organizer 2 文件 ,x~Z?
OR3 Lotus Organizer 97 文件 -
OSS Microsoft Office查找文件 |2D
OST Microsoft Exchange / Outlook 離線文件 rpG
OTL Super NoteTab 模板文件 &
OUT C語言輸出文件 [
continue V@BEA
P3 Primavera Project Planner(工程設計器)文件 ]Hzi
P10 Tektronix Plot 10 繪圖文件 E7C-8
P65 PageMaker 6.5文件 <8}t
P7C Digital ID 文件(MIME) G.yZi>
PAB Microsoft個人地址簿 bEA
PAC SB Studio Ⅱ 包 9%
PAK Quake WAD文件 ]'e$
PAL 壓縮文件 \*O
PART Go!Zilla部分下載文件 +#
PAS Pascal源代碼 BJHD[
PAT DataCAD Hatch模式文件;CorelDRAW模式;高級Gravis Ultrasound / Forte 技術;碎片文件 8n4!J
PBD PowerBuilder動態庫,作為本地DLL的一個替代物 ,s-fY"
PBF Turtle Beach的Pinnacle 銀行文件 B
PBK Microsoft PhoneBook(電話簿):qR
&;南平IT論壇 -- 南平IT -- IT的南平,走進網路人生,走進IT }F
PBL 用於訶owerBuilder開發環境中的PowerBuilder動態庫 vTiwm
PBM 可導出點陣圖 JI
PBR PowerBuilder資源 w8_/w*
PCD Kodak Photo-CD映像;P-Code編譯器測試腳本,由Microsoft測試與Microsoft Visual測試 ^
PCE Maps Eudora郵箱名字的DOS文件名 b
PCL Hewlett-Packard 列印機控制語言文件(列印機備用點陣圖) ih7T
PCM 聲音文件格式;OKI MSM6376 合成晶元 PCM格式 +[@
PCP Symantec Live Update Pro文件 Ply]
PCS PICS動畫文件 yF
PCT Macintosh PICT籜�募?<.tJ%8
PCX Zsoft PC畫筆點陣圖 !pN
PDB 3Com PalmPilot資料庫文件 w(I+S
PDD 可以用Paint Shop Pro或其他圖像處理軟體打開的圖形圖像 Et
PDF Adobe Acrobat 可導出文檔格式文件(可用Web瀏覽器顯示);Microsoft系統管理伺服器包定義文件;NetWare列印機定義文件 ^.@cTR
PDP Broderbund的Print Shop Deluxe文件 vo_
PDQ Patton&Patton Flowercharting PDQ Lite 文件 YF
PDS 攝影圖像文件(該文件格式的來源不清楚) ^e_
PF Aladdin系統對私人文件進行加密的文件 ly=4'Q
PFA 類型1字體(ASCⅡ) lO
PFB 類型1字體(二進制) E
PFC PF組件 |()m8*
PFM 列印機字體尺度 P8[z
PGD 良好隱私(Pretty Good Privacy,PGP)虛擬磁碟文件 ~&
PGL HP繪圖儀繪圖文件 |aEvA
PGM 可輸出灰度圖(點陣圖) @
PGP 用良好隱私(PGP)演算法加密文件 UC
PH 由Microsoft幫助文件編譯器產生的臨時文件 [#).
PHP,PHP3 包含有PHP腳本的HTML網頁 Dg_
PHTML 包含有PHP腳本的HTML網頁;由Perl分析解釋的HTML Co}
PIC PC畫圖點陣圖;Lotus圖片;Macintosh PICT繪圖 OP!wL
PICT Macintosh PICT圖形文件 '&.su/
PIF 程序信息文件;IBM PIF繪圖文件 ^E
PIG LucasArts的Dark Forces WAD文件 )fFy<
PIN Epic Pinball數據文件 YV
PIX 內置系統點陣圖 1
PJ MKS源完整性文件 ?$#>
PJX,PJT Microsoft Visual FoxPro工程文件 8g
PKG Microsoft Developer Studio應用程序擴展(與DLL文件類似) {fLE
PKR PGP的公用鑰匙環 9
PL Perl程序 0}m
PLG 由REND386/AVRIL使用的文件格式 ;V`t1R
PLI Oracle 7數據描述 &c
PLM Discorder Tracker2模塊 ,""z"a
PLS Disorder Tracker2抽樣文件;MPEG PlayList文件(由WinAmp使用) FG
PLT HPGL繪圖儀繪圖文件;AutoCAD plot繪圖文件;Gerber標志製作軟體 PV
PM5 Pagemaker 5.0文件 F}s\Kd
PM6 Pagemaker 6.0文件 8
PNG 可移植的網路圖形點陣圖;Paint Shop Pro瀏覽器目錄 v2W3
PNT,PNTG MacPaint圖形文件 UTLLO,
POG Descent2 PIG文件擴展 q
POL Windows NT策略文件 qF
POP Visual dBASE上托文件 Rud`Zc
POT Microsoft Powerpoint模塊 q
POV 視頻射線跟蹤器暫留 tNYRO
PP4 Picture Publisher 4點陣圖 ,
PPA Microsoft Powerpoint內插器 C9
PPF Turtle Beach的Pinnacle程序文件 Zi
PPM 可移植的象素映射點陣圖 v`
PPP Parson Power Publisher;Serif PagePlus桌面出版預設輸出 FBJqM
PPS Microsoft Powerpoint幻燈片放映 X
PPT Microsoft Powerpoint演示文稿 UBCFe&
PQI PowerQuest驅動器圖像文件 w#Et6Z
PRC 3COM PalmPiltt資源(文本或程序)文件 5uj5a1
PRE Lotus Freelance演示文稿 (J0&E
PRF Windows系統文件,Macromedia導演設置文件 .ow
PRG dBASE Clipper和FoxPro程序源文件;WAVmaker程序 w_HT
PRJ 3D Studio(DOS)工程文件 wa
PRN 列印表格(用空格分隔的文本);DataCAD Windows列印機文件 um
PRP Oberson的Prospero數據轉換產品保存的工程文件 $|
PRS Harvard Graphics for Windows演示文件 .M:]I1
PRT 列印格式化文件;Pro/ENGINEER元件文件 -*lUC?
PRV PsiMail Internet提供者模板文件 Y
PRZ Lotus Freelance Graphics 97文件 !
PS Postscript格式化文件(PostScript列印機可讀文件) c
PSB Pinnacle Sound Bank 86*'nl
PSD Adobe photoshop點陣圖文件 b_
PSI PSION a-Law聲音文件 ~?
PSM Protracker Studio模型格式;Epic游戲的源數據文件 ;xt$sW
PSP Paint Shop Pro圖像文件 (
PST Microsoft Outlook個人文件夾文件 Wi
PTD Pro/ENGINEER表格文件 Hp*=[h
PTM Polytracker音樂模塊(MOD)文件 l7Z=qb
PUB Ventura Publisher出版物;Microsoft Publisher文檔 MA".pQ
PWD Microsoft Pocket Word文檔 g~$p0
PWL Windows 95口令列表文件+r
PWP Photoworks圖像文件(能被Photoworks瀏覽的一系列文件) {0&qE
PWZ Microsoft Powerpoint向導 o+5T
PXL Microsoft Pocket Excel電子表格 !l[s
PY 來自Yahoo的電子消息;Python腳本文件 {7"Ef
PYC Python腳本文件 ]
2005-10-20 10:26:42 Li-Birch
等級:超級版主
文章:82
積分:909
門派:無門無派
注冊:2005年9月21日第 4 樓
--------------------------------------------------------------------------------
QAD PF QuickArt文檔 Tc>G
QBW QuickBooks for Windows文件 .S
QDT 來自Quicken UK的QuickBooks數據文件,帳目/稅/貨單程序 wpW*,
QD3D Apple的QuickDraw 3D元文件格式 N#q
QFL FAMILY LAWYER文檔 l|
QIC Microsoft備份文件 =3d
QIF QuickTime相關圖像(MIME);Quicken導入文件 ObQ
QLB Quick庫 @UsI9
QM Quality Motion文件 A.@-
QRY Microsoft查詢文件 ?Wfz
QST Quake Spy Tab文件 7q"
QT,QTM QuickTime電影 f('VM
QTI,QTIF QuickTime相關圖像 0ZO&c
QTP QuickTime優先文件 !
QTS Mac PICT圖像文件;QuickTime相關圖像 ,(tkd
QTX QuickTime相關圖像 "%%lf
QW Symantec Q&A Write程序文件 ,L0ke
QXD Quark XPress文件 c
R Pegasus郵件資源文件 |V
RA RealAudio聲音文件 [ed%
RAM RealAudio元文件 jY #=i
RAR RAR壓縮檔案(Eugene Roshall格式) kijhrf
RAS Sun光柵圖像點陣圖 V
RAW RAW文件格式(點陣圖);Raw標識的PCM數據 SadzLD
RBH 由RoboHELP維持的RBH文件,它加入到一個幫助工程文件的信息中 ZL5
RDF 資源描述框架文件(涉及XML和元數據) r
RDL Descent注冊水平文件 uuHdS
REC 錄音機宏;RapidComm聲音文件 s$lq
REG 注冊表文件 t/Pwm_
REP Visual dBASE報表文件 24
RES Microsoft Visual C++資源文件 pf
RFT 可修訂的表單文本(IBM的DCA一部分或文檔內容框架結構一部分) g4
RGB,SGI Silicon圖形RGB文件 QwR
RLE Run-Length編碼的點陣圖 ;C
RL2 Descent2注冊水平文件 s\k:
RM RealAudio視頻文件 _Qhk
RMD Microsoft RegMaid文檔 V]A,
RMF Rich Map格式(3D游戲編輯器使用它來保存圖) uKC
RMI M1D1音樂 tD\Y3
ROM 基於盒式磁帶的家庭游戲模擬器文件(來自Atari 2600、Colecovision、Sega、Nintendo等盒式磁帶里的ROM完全拷貝,在兩個模擬器之間不可互修改) 7R;
ROV Rescue Rover數據文件 {
RPM RedHat包管理器包(用於Linux) o{m
RPT Microsoft Visual Basic Crystal報表文件 8A+<l
RRS Ace game Road Rash保存的文件 Z0
RSL Borland的Paradox 7報表 '20J#D
RSM WinWay Resume Writer恢復文件 Yr|
RTF Rich Text格式文檔 Pcy
RTK RoboHELP使用的用來模擬Windows幫助的搜索功能 C!,
RTM Real Tracker音樂模塊(MOD)文件 vZ
RTS RealAudio的RTSL文檔;RoboHELP對復雜操作進行加速 Hx{!S
RUL InstallShield使用的擴展名 ;
RVP Microsoft Scan配置文件(MIME) ]Yl-V
Rxx 多卷檔案上的RAR壓縮文件(xx= 1~99間的一個數字) Pfo.z
S 匯編源代碼文件 D*
S3I Scream Tracker v3設備 "e0
S3M Scream Tracker v3的聲音模塊文件 g&2$t1
SAM Ami專業文檔;8位抽樣數據)\
SAV 游戲保存文件 HN)62
SB 原始帶符號位元組(8位)數據 jMhd,@
SBK Creative Labs的Soundfont 1.0 Bank文件;(Soundblaster)/EMU SonndFont v1.x Bank文件 2
SBL Shockwave Flash對象文件 0v4'hN
SC2 Microsoft Schele+7文件格式;SAS目錄(Windows 95/NT、OS/2、Mac) MEzi
SC3 SimCity 3000保存的游戲文件 %
SCC Microsoft Source Safe文件 3u
SCD Matrix/Imapro SCODL幻燈片圖像;Microsoft Schele +7 jN
SCF Windows Explorer命令文件 ^dxYg
SCH Microsoft Schele+1 n
SCI ScanVec Inspire本地文件格式 ]Gv
SCN True Space 2場景文件 3c
SCP 撥號網路腳本文件 qXP{YP
SCR Windows屏幕保護;傳真圖像;腳本文件 U@V
SCT SAS目錄(DOS);Scitex CT點陣圖;Microsoft FoxPro表單 PETt8&
SCT01 SAS目錄(UNIX) W]
SCV ScanVec CASmate本地文件格式 867O%
SCX Microsoft FoxPro表單文件 6B|
SD Sound Designer 1聲音文件 O7
SD2 Sound Designer 2展平文件/數據分X指令;SAS資料庫(Windows 95/NT、OS/2、Mac) q5'nG
SDF 系統數據文件格式—Legacy Unisys(Sperry)格式 Vi#
SDK Roland S—系列軟盤映像 B
SDL Smart Draw庫文件 G$
SDR Smart Draw繪圖文件 eXzu
SDS 原始Midi抽樣轉儲標准文件 r`YE($
SDT SmartDraw模板 #'R?
SDV 分號分隔的值文件 Q`Q
SDW Lotus WordPro圖形文件;原始帶符號的DWORD(32位)數據 -q%8<
SDX 由SDX壓縮的Midi抽樣轉儲標准文件 b v
SEA 自解壓檔案(Stufflt for Macintosh或其他軟體使用的文件) cR{
SEP 標簽圖像文件格式(TIFF)點陣圖 X`B
SES Cool Edit Session文件(普通數據聲音編輯器文件) ~
SF IRCAM聲音文件格式 I#B|j[
SF2 Emu Soundfont v2.0文件;Creative Labs的Soundfont 2.0 Bank文件(Sound Blaster) #y
SFD SoundStage聲音文件數據 0i
SFI Sound Stage聲音文件信息 ?/-
SFR Sonic Foundry Sample資源 Q{8r
SFW Seattle電影工程(損壞的JPEG) LO
SFX RAR自解壓檔案 Ws
SGML 標准通用標簽語言 $l-h
SHB Corel Show演示文稿;文檔快捷文件 \
SHG 熱點點陣圖 Cig
SHP 3D Studio(DOS)形狀文件;被一些應用程序用於多部分交互三角形模型的3D建模 rws|
SHS Shell scrap文件;據載用於發送"口令盜竊者" ~lI
SHTML 含有伺服器端包括(SSI)的HTML文件 &
SHW Corel Show演示文稿 A_^
SIG 符號文件 f$`
SIT Mac的StuffIt檔案文件 QG-
SIZ Oracle 7配置文件 \)
SKA PGP秘鑰 )
SKL Macromedia導演者資源文件 tD
SL PACT的保存布局擴展名 S
SLB Autodesk Slide庫文件格式 c{O"
SLD Autodesk Slide文件格式 MS6V
SLK Symbolic Link(SYLK)電子表格 ftW
SM3 DataCAD標志文件 Y*N#
SMP Samplevision格式;Ad Lib Gold抽樣文件 HlI9zn
SND NeXT聲音;Mac聲音資源;原始的未符號化的PCM數據;AKAI MPC系列抽樣文件 71q
SNDR Sounder聲音文件 ";y
SNDT Sndtool聲音文件 {?ikA@
SOU SB Studio Ⅱ聲音 :]
SPD Speech數據文件 o1A.
SPL Shockwave Flash對象;DigiTrakker抽樣 $+Y'
SPPACK SPPack聲音抽樣 yl
SPRITE Acorn的點陣圖格式 L
SQC 結構化查詢語言(SQR)普通代碼文件 {
SQL Informix SQL查詢;通常被資料庫產品用於SQL查詢(腳本、文本、二進制)的文件擴展名 +mn
SQR 結構化查詢語言(SQR)程序文件 m:r%
SSDO1 SAS數據集合(UNIX) q\Fj
SSD SAS資料庫(DOS) UP
SSF 可用的電子表格文件 C0
ST Atari ST磁碟映像 !q
STL Sterolithography文件 v
STM .shtml的短後綴形式,含有一個服務端包括(SSI)的HTML文件;Scream Tracker V2音樂模塊(MOD)文件 g^
STR 屏幕保護文件 g@
STY Ventura Publisher風格表 uWuG;X
SVX Amiga 8SVX聲音;互交換文件格式,8SVX/16SV 6p_5s0
SW 原始帶符號字(16位)數據 CM[
SWA 在Macromedia導演文件(MP3文件)中的Shockwave聲音文件 8
SWF Shockwave Flash對象 !5Oy/
SWP DataCAD交換文件 x
SYS 系統文件 `
SYW Yamaha SY系列波形文件 /wN)J
2005-10-20 10:27:22 Li-Birch
等級:超級版主
文章:82
積分:909
門派:無門無派
注冊:2005年9月21日第 5 樓
--------------------------------------------------------------------------------
T64 Commodore 64模擬器磁帶映像文件 cx8(JV
TAB Guitar表文件 En>R,
TAR 磁帶檔案 1
TAZ UNIX gzip/tape檔案 p%f'D
TBK Asymetrix Toolbook交互多媒體文件 cs(Y
TCL 用TCL/TK語言編寫的腳本 C]|
TDB Thumbs Plus資料庫 fP
TDDD Imagine 和 Turbo Silver射線跟蹤器使用的文件格式 ;}
TEX 正文文件 (
TGA Targa點陣圖 x!']p
TGZ UNIX gzip/tap檔案文件 d5_
THEME Windows 95桌面主題文件 m
THN Graphics WorkShop for Windows速寫 :Ww
TIF,TIFF 標簽圖像文件格式(TIFF)點陣圖 +?
TIG 虎形文件,美國政府用於分發地圖 cJ}
TLB OLE類型庫 -
TLE 兩線元素集合(NASA) 2D
TMP Windows臨時文件 _}t9B)
TOC Eudora郵箱內容表 0
TOL Kodak照片增強器 y
TOS Atari 16/32和32/32計算機操作系統文件 @*
TPL CakeWalk聲音模板文件;DataCAD模板文件
❼ 如何調試linux的網路驅動
如何根據oops定位代碼行
我們借用linux設備驅動第二篇:構造和運行模塊裡面的hello world程序來演示出錯的情況,含有錯誤代碼的hello world如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <linux/init.h>
#include <linux/mole.h>
MODULE_LICENSE("Dual BSD/GPL");
static int hello_init(void)
{
char *p = NULL;
memcpy(p, "test", 4);
printk(KERN_ALERT "Hello, world\n");
return 0;
}
static void hello_exit(void)
{
printk(KERN_ALERT "Goodbye, cruel world\n");
}
mole_init(hello_init);
mole_exit(hello_exit);
Makefile文件如下:
1
2
3
4
5
6
7
8
9
10
11
ifneq ($(KERNELRELEASE),)
obj-m := helloworld.o
else
KERNELDIR ?= /lib/moles/$(shell uname -r)/build
PWD := $(shell pwd)
default:
$(MAKE) -C $(KERNELDIR) M=$(PWD) moles
endif
clean:
rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c .tmp_versions moles.order Mole.symvers
很明顯,以上代碼的第8行是一個空指針錯誤。insmod後會出現下面的oops信息:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
[ 459.516441] BUG: unable to handle kernel NULL pointer dereference at (null)
[ 459.516445]
[ 459.516448] PGD 0
[ 459.516450] Oops: 0002 [#1] SMP
[ 459.516452] Moles linked in: helloworld(OE+) vmw_vsock_vmci_transport vsock coretemp crct10dif_pclmul crc32_pclmul ghash_clmulni_intel aesni_intel vmw_balloon snd_ens1371 aes_x86_64 lrw snd_ac97_codec gf128mul glue_helper ablk_helper cryptd ac97_bus gameport snd_pcm serio_raw snd_seq_midi snd_seq_midi_event snd_rawmidi snd_seq snd_seq_device snd_timer vmwgfx btusb ttm snd drm_kms_helper drm soundcore shpchp vmw_vmci i2c_piix4 rfcomm bnep bluetooth 6lowpan_iphc parport_pc ppdev mac_hid lp parport hid_generic usbhid hid psmouse ahci libahci floppy e1000 vmw_pvscsi vmxnet3 mptspi mptscsih mptbase scsi_transport_spi pata_acpi [last unloaded: helloworld]
[ 459.516476] CPU: 0 PID: 4531 Comm: insmod Tainted: G OE 3.16.0-33-generic #44~14.04.1-Ubuntu
[ 459.516478] Hardware name: VMware, Inc. VMware Virtual Platform/440BX Desktop Reference Platform, BIOS 6.00 05/20/2014
[ 459.516479] task: ffff88003821f010 ti: ffff880038fa0000 task.ti: ffff880038fa0000
[ 459.516480] RIP: 0010:[<ffffffffc061400d>] [<ffffffffc061400d>] hello_init+0xd/0x30 [helloworld]
[ 459.516483] RSP: 0018:ffff880038fa3d40 EFLAGS: 00010246
[ 459.516484] RAX: ffff88000c31d901 RBX: ffffffff81c1a020 RCX: 000000000004b29f
[ 459.516485] RDX: 000000000004b29e RSI: 0000000000000017 RDI: ffffffffc0615024
[ 459.516485] RBP: ffff880038fa3db8 R08: 0000000000015e80 R09: ffff88003d615e80
[ 459.516486] R10: ffffea000030c740 R11: ffffffff81002138 R12: ffff88000c31d0c0
[ 459.516487] R13: 0000000000000000 R14: ffffffffc0614000 R15: ffffffffc0616000
[ 459.516488] FS: 00007f8a6fa86740(0000) GS:ffff88003d600000(0000) knlGS:0000000000000000
[ 459.516489] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 459.516490] CR2: 0000000000000000 CR3: 0000000038760000 CR4: 00000000003407f0
[ 459.516522] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[ 459.516524] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
[ 459.516524] Stack:
[ 459.57] ffff880038fa3db8 ffffffff81002144 0000000000000001 0000000000000001
[ 459.516540] 0000000000000001 ffff880028ab5040 0000000000000001 ffff880038fa3da0
[ 459.516541] ffffffff8119d0b2 ffffffffc0616018 00000000bd1141ac ffffffffc0616018
[ 459.516543] Call Trace:
[ 459.516548] [<ffffffff81002144>] ? do_one_initcall+0xd4/0x210
[ 459.516550] [<ffffffff8119d0b2>] ? __vunmap+0xb2/0x100
[ 459.516554] [<ffffffff810ed9b1>] load_mole+0x13c1/0x1b80
[ 459.516557] [<ffffffff810e9560>] ? store_uevent+0x40/0x40
[ 459.516560] [<ffffffff810ee2e6>] SyS_finit_mole+0x86/0xb0
[ 459.516563] [<ffffffff8176be6d>] system_call_fastpath+0x1a/0x1f
[ 459.516564] Code: <c7> 04 25 00 00 00 00 74 65 73 74 31 c0 48 89 e5 e8 a2 86 14 c1 31
[ 459.516573] RIP [<ffffffffc061400d>] hello_init+0xd/0x30 [helloworld]
[ 459.516575] RSP <ffff880038fa3d40>
[ 459.516576] CR2: 0000000000000000
[ 459.516578] ---[ end trace 7c52cc8624b7ea60 ]---
下面簡單分析下oops信息的內容。
由BUG: unable to handle kernel NULL pointer dereference at (null)知道出錯的原因是使用了空指針。標紅的部分確定了具體出錯的函數。Moles linked in: helloworld表明了引起oops問題的具體模塊。call trace列出了函數的調用信息。這些信息中其中標紅的部分是最有用的,我們可以根據其信息找到具體出錯的代碼行。下面就來說下,如何定位到具體出錯的代碼行。
第一步我們需要使用objmp把編譯生成的bin文件反匯編,我們這里就是helloworld.o,如下命令把反匯編信息保存到err.txt文件中:
1
objmp helloworld.o -D > err.txt
err.txt內容如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
helloworld.o: file format elf64-x86-64
Disassembly of section .text:
<span style="color:#ff0000;">0000000000000000 <init_mole>:</span>
0: e8 00 00 00 00 callq 5 <init_mole+0x5>
5: 55 push %rbp
6: 48 c7 c7 00 00 00 00 mov $0x0,%rdi
d: c7 04 25 00 00 00 00 movl $0x74736574,0x0
14: 74 65 73 74
18: 31 c0 xor %eax,%eax
1a: 48 89 e5 mov %rsp,%rbp
1d: e8 00 00 00 00 callq 22 <init_mole+0x22>
22: 31 c0 xor %eax,%eax
24: 5d pop %rbp
25: c3 retq
26: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1)
2d: 00 00 00
0000000000000030 <cleanup_mole>:
30: e8 00 00 00 00 callq 35 <cleanup_mole+0x5>
35: 55 push %rbp
36: 48 c7 c7 00 00 00 00 mov $0x0,%rdi
3d: 31 c0 xor %eax,%eax
3f: 48 89 e5 mov %rsp,%rbp
42: e8 00 00 00 00 callq 47 <cleanup_mole+0x17>
47: 5d pop %rbp
48: c3 retq
Disassembly of section .rodata.str1.1:
0000000000000000 <.rodata.str1.1>:
0: 01 31 add %esi,(%rcx)
2: 48 rex.W
3: 65 gs
4: 6c insb (%dx),%es:(%rdi)
5: 6c insb (%dx),%es:(%rdi)
6: 6f outsl %ds:(%rsi),(%dx)
7: 2c 20 sub $0x20,%al
9: 77 6f ja 7a <cleanup_mole+0x4a>
b: 72 6c jb 79 <cleanup_mole+0x49>
d: 64 0a 00 or %fs:(%rax),%al
10: 01 31 add %esi,(%rcx)
12: 47 6f rex.RXB outsl %ds:(%rsi),(%dx)
14: 6f outsl %ds:(%rsi),(%dx)
15: 64 fs
16: 62 (bad)
17: 79 65 jns 7e <cleanup_mole+0x4e>
19: 2c 20 sub $0x20,%al
1b: 63 72 75 movslq 0x75(%rdx),%esi
1e: 65 gs
1f: 6c insb (%dx),%es:(%rdi)
20: 20 77 6f and %dh,0x6f(%rdi)
23: 72 6c jb 91 <cleanup_mole+0x61>
25: 64 0a 00 or %fs:(%rax),%al
Disassembly of section .modinfo:
0000000000000000 <__UNIQUE_ID_license0>:
0: 6c insb (%dx),%es:(%rdi)
1: 69 63 65 6e 73 65 3d imul $0x3d65736e,0x65(%rbx),%esp
8: 44 75 61 rex.R jne 6c <cleanup_mole+0x3c>
b: 6c insb (%dx),%es:(%rdi)
c: 20 42 53 and %al,0x53(%rdx)
f: 44 2f rex.R (bad)
11: 47 50 rex.RXB push %r8
13: 4c rex.WR
...
Disassembly of section .comment:
0000000000000000 <.comment>:
0: 00 47 43 add %al,0x43(%rdi)
3: 43 3a 20 rex.XB cmp (%r8),%spl
6: 28 55 62 sub %dl,0x62(%rbp)
9: 75 6e jne 79 <cleanup_mole+0x49>
b: 74 75 je 82 <cleanup_mole+0x52>
d: 20 34 2e and %dh,(%rsi,%rbp,1)
10: 38 2e cmp %ch,(%rsi)
12: 32 2d 31 39 75 62 xor 0x62753931(%rip),%ch # 62753949 <cleanup_mole+0x62753919>
18: 75 6e jne 88 <cleanup_mole+0x58>
1a: 74 75 je 91 <cleanup_mole+0x61>
1c: 31 29 xor %ebp,(%rcx)
1e: 20 34 2e and %dh,(%rsi,%rbp,1)
21: 38 2e cmp %ch,(%rsi)
23: 32 00 xor (%rax),%al
Disassembly of section __mcount_loc:
0000000000000000 <__mcount_loc>:
由oops信息我們知道出錯的地方是hello_init的地址偏移0xd。而有mp信息知道,hello_init的地址即init_mole的地址,因為hello_init即本模塊的初始化入口,如果在其他函數中出錯,mp信息中就會有相應符號的地址。由此我們得到出錯的地址是0xd,下一步我們就可以使用addr2line來定位具體的代碼行:
addr2line -C -f -e helloworld.o d
此命令就可以得到行號了。以上就是通過oops信息來定位驅動崩潰的行號。
其他調試手段
以上就是通過oops信息來獲取具體的導致崩潰的代碼行,這種情況都是用在遇到比較嚴重的錯誤導致內核掛掉的情況下使用的,另外比較常用的調試手段就是使用printk來輸出列印信息。printk的使用方法類似printf,只是要注意一下列印級別,詳細介紹在linux設備驅動第二篇:構造和運行模塊中已有描述,另外需要注意的是大量使用printk會嚴重拖慢系統,所以使用過程中也要注意。
以上兩種調試手段是我工作中最常用的,還有一些其他的調試手段,例如使用/proc文件系統,使用trace等用戶空間程序,使用gdb,kgdb等,這些調試手段一般不太容易使用或者不太方便使用,所以這里就不在介紹了。