❶ 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等,这些调试手段一般不太容易使用或者不太方便使用,所以这里就不在介绍了。