📄 linux设备驱动程序学习(2)-调试技术 - linux设备驱动程序 - tekkaman ninja.htm
字号:
<P
style="MARGIN: 5px; LINE-HEIGHT: 150%"><CODE><SPAN
style="COLOR: rgb(0,0,0)"><SPAN
style="COLOR: rgb(0,0,204)"><SPAN
style="COLOR: rgb(0,1,2)">[Tekkaman2440@SBC2440V4]#cat
/proc/sys/kernel/printk</SPAN><BR><SPAN
style="COLOR: rgb(255,1,2)">1</SPAN> <SPAN
style="COLOR: rgb(0,1,2)">
4
1
7</SPAN></SPAN></SPAN></CODE></P>
<P
style="MARGIN: 5px; LINE-HEIGHT: 150%"><CODE><SPAN
style="COLOR: rgb(0,0,0)"><SPAN
style="COLOR: rgb(0,0,204)"><SPAN
style="COLOR: rgb(0,1,2)"></SPAN></SPAN></SPAN></CODE><CODE><SPAN
style="COLOR: rgb(0,0,0)"><SPAN
style="COLOR: rgb(0,0,204)">[</SPAN>Tekkaman2440@SBC2440V4<SPAN
style="COLOR: rgb(0,0,204)">]</SPAN><SPAN
style="COLOR: rgb(0,0,204)">#</SPAN>insmod
hello<SPAN
style="COLOR: rgb(0,0,204)">.</SPAN>ko<BR><SPAN
style="COLOR: rgb(0,0,204)">[</SPAN>Tekkaman2440@SBC2440V4<SPAN
style="COLOR: rgb(0,0,204)">]</SPAN><SPAN
style="COLOR: rgb(0,0,204)">#</SPAN>rmmod
hello<BR><SPAN
style="COLOR: rgb(0,0,204)">[</SPAN>Tekkaman2440@SBC2440V4<SPAN
style="COLOR: rgb(0,0,204)">]</SPAN><SPAN
style="COLOR: rgb(0,0,204)">#</SPAN>echo <SPAN
style="COLOR: rgb(255,1,2)">7</SPAN> <SPAN
style="COLOR: rgb(0,0,204)">></SPAN> <SPAN
style="COLOR: rgb(0,0,204)">/</SPAN>proc<SPAN
style="COLOR: rgb(0,0,204)">/</SPAN>sys<SPAN
style="COLOR: rgb(0,0,204)">/</SPAN>kernel<SPAN
style="COLOR: rgb(0,0,204)">/</SPAN>printk<BR><SPAN
style="COLOR: rgb(0,0,204)"><SPAN
style="COLOR: rgb(0,1,2)">[Tekkaman2440@SBC2440V4]#cat
/proc/sys/kernel/printk</SPAN><BR
style="COLOR: rgb(0,1,2)"><SPAN
style="COLOR: rgb(255,1,2)">7 </SPAN>
<SPAN
style="COLOR: rgb(0,1,2)">4
1
7</SPAN></SPAN></SPAN></CODE></P>
<P
style="MARGIN: 5px; LINE-HEIGHT: 150%"><CODE><SPAN
style="COLOR: rgb(0,0,0)"><SPAN
style="COLOR: rgb(0,0,204)">[</SPAN>Tekkaman2440@SBC2440V4<SPAN
style="COLOR: rgb(0,0,204)">]</SPAN><SPAN
style="COLOR: rgb(0,0,204)">#</SPAN>insmod
hello<SPAN
style="COLOR: rgb(0,0,204)">.</SPAN>ko<BR>Hello<SPAN
style="COLOR: rgb(0,0,204)">,</SPAN> Tekkaman
Ninja !<BR><SPAN
style="COLOR: rgb(0,0,204)">[</SPAN>Tekkaman2440@SBC2440V4<SPAN
style="COLOR: rgb(0,0,204)">]</SPAN><SPAN
style="COLOR: rgb(0,0,204)">#</SPAN>rmmod
hello<BR>Goodbye<SPAN
style="COLOR: rgb(0,0,204)">,</SPAN> Tekkaman
Ninja !<BR> Love Linux <SPAN
style="COLOR: rgb(0,0,204)">!</SPAN>Love ARM
<SPAN style="COLOR: rgb(0,0,204)">!</SPAN> Love
KeKe <SPAN
style="COLOR: rgb(0,0,204)">!</SPAN><SPAN
style="COLOR: rgb(0,0,204)"><SPAN
style="COLOR: rgb(0,1,2)"></SPAN><SPAN
style="COLOR: rgb(0,1,2)"></SPAN><BR></SPAN><SPAN
style="COLOR: rgb(0,0,204)"></SPAN></SPAN></CODE></P></TD></TR></TBODY></TABLE><BR>四个数字的含义:当前的loglevel、默认loglevel、最小允许的loglevel、引导时的默认loglevel。
<HR id=null>
<BR><BR>
<DIV><FONT size=4> 为了方便的打开和关闭调试信息,<SPAN
style="COLOR: rgb(0,1,255)">《Linux设备驱动程序(第3版)》<FONT
color=#000000>提供以下源码:</FONT></SPAN></FONT></DIV>
<TABLE style="BORDER-COLLAPSE: collapse"
borderColor=#999999 cellSpacing=0 cellPadding=0
width="95%" bgColor=#f1f1f1 border=1>
<TBODY>
<TR>
<TD>
<P
style="MARGIN: 5px; LINE-HEIGHT: 150%"><CODE><SPAN
style="COLOR: rgb(0,0,0)"><SPAN
style="COLOR: rgb(255,153,0)">/* Macros to help
debugging */</SPAN><BR><SPAN
style="COLOR: rgb(0,0,204)">#</SPAN><SPAN
style="COLOR: rgb(255,0,0)">undef</SPAN> PDEBUG
<SPAN style="COLOR: rgb(255,153,0)">/* undef it,
just in case */</SPAN><BR><SPAN
style="COLOR: rgb(0,0,204)">#</SPAN><SPAN
style="COLOR: rgb(255,0,0)">ifdef</SPAN>
SCULL_DEBUG<BR><SPAN
style="COLOR: rgb(0,0,204)">#</SPAN> <SPAN
style="COLOR: rgb(255,0,0)">ifdef</SPAN>
__KERNEL__<BR> <SPAN
style="COLOR: rgb(255,153,0)">/* This one if
debugging is on, and kernel space
*/</SPAN><BR><SPAN
style="COLOR: rgb(0,0,204)">#</SPAN> <SPAN
style="COLOR: rgb(255,0,0)">define</SPAN>
PDEBUG<SPAN
style="COLOR: rgb(0,0,204)">(</SPAN>fmt<SPAN
style="COLOR: rgb(0,0,204)">,</SPAN> args<SPAN
style="COLOR: rgb(0,0,204)">.</SPAN><SPAN
style="COLOR: rgb(0,0,204)">.</SPAN><SPAN
style="COLOR: rgb(0,0,204)">.</SPAN><SPAN
style="COLOR: rgb(0,0,204)">)</SPAN> printk<SPAN
style="COLOR: rgb(0,0,204)">(</SPAN> KERN_DEBUG
<SPAN style="COLOR: rgb(255,0,255)">"scull:
"</SPAN> fmt<SPAN
style="COLOR: rgb(0,0,204)">,</SPAN> <SPAN
style="COLOR: rgb(0,0,204)">#</SPAN><SPAN
style="COLOR: rgb(0,0,204)">#</SPAN> args<SPAN
style="COLOR: rgb(0,0,204)">)</SPAN><BR><SPAN
style="COLOR: rgb(0,0,204)">#</SPAN> <SPAN
style="COLOR: rgb(0,0,255)">else</SPAN> <SPAN
style="COLOR: rgb(255,153,0)">/* This one for
user space */</SPAN><BR><SPAN
style="COLOR: rgb(0,0,204)">#</SPAN> <SPAN
style="COLOR: rgb(255,0,0)">define</SPAN>
PDEBUG<SPAN
style="COLOR: rgb(0,0,204)">(</SPAN>fmt<SPAN
style="COLOR: rgb(0,0,204)">,</SPAN> args<SPAN
style="COLOR: rgb(0,0,204)">.</SPAN><SPAN
style="COLOR: rgb(0,0,204)">.</SPAN><SPAN
style="COLOR: rgb(0,0,204)">.</SPAN><SPAN
style="COLOR: rgb(0,0,204)">)</SPAN> <SPAN
style="COLOR: rgb(255,0,0)">fprintf</SPAN><SPAN
style="COLOR: rgb(0,0,204)">(</SPAN><SPAN
style="COLOR: rgb(255,0,0)">stderr</SPAN><SPAN
style="COLOR: rgb(0,0,204)">,</SPAN> fmt<SPAN
style="COLOR: rgb(0,0,204)">,</SPAN> <SPAN
style="COLOR: rgb(0,0,204)">#</SPAN><SPAN
style="COLOR: rgb(0,0,204)">#</SPAN> args<SPAN
style="COLOR: rgb(0,0,204)">)</SPAN><BR><SPAN
style="COLOR: rgb(0,0,204)">#</SPAN> <SPAN
style="COLOR: rgb(255,0,0)">endif</SPAN><BR><SPAN
style="COLOR: rgb(0,0,204)">#</SPAN><SPAN
style="COLOR: rgb(0,0,255)">else</SPAN><BR><SPAN
style="COLOR: rgb(0,0,204)">#</SPAN> <SPAN
style="COLOR: rgb(255,0,0)">define</SPAN>
PDEBUG<SPAN
style="COLOR: rgb(0,0,204)">(</SPAN>fmt<SPAN
style="COLOR: rgb(0,0,204)">,</SPAN> args<SPAN
style="COLOR: rgb(0,0,204)">.</SPAN><SPAN
style="COLOR: rgb(0,0,204)">.</SPAN><SPAN
style="COLOR: rgb(0,0,204)">.</SPAN><SPAN
style="COLOR: rgb(0,0,204)">)</SPAN> <SPAN
style="COLOR: rgb(255,153,0)">/* not debugging:
nothing */</SPAN><BR><SPAN
style="COLOR: rgb(0,0,204)">#</SPAN><SPAN
style="COLOR: rgb(255,0,0)">endif</SPAN><BR><BR><SPAN
style="COLOR: rgb(0,0,204)">#</SPAN><SPAN
style="COLOR: rgb(255,0,0)">undef</SPAN>
PDEBUGG<BR><SPAN
style="COLOR: rgb(0,0,204)">#</SPAN><SPAN
style="COLOR: rgb(255,0,0)">define</SPAN>
PDEBUGG<SPAN
style="COLOR: rgb(0,0,204)">(</SPAN>fmt<SPAN
style="COLOR: rgb(0,0,204)">,</SPAN> args<SPAN
style="COLOR: rgb(0,0,204)">.</SPAN><SPAN
style="COLOR: rgb(0,0,204)">.</SPAN><SPAN
style="COLOR: rgb(0,0,204)">.</SPAN><SPAN
style="COLOR: rgb(0,0,204)">)</SPAN> <SPAN
style="COLOR: rgb(255,153,0)">/* nothing: it's a
placeholder
*/</SPAN></SPAN></CODE></P></TD></TR></TBODY></TABLE>
<P><FONT size=3>Makefile中要添加的语句:</FONT></P>
<TABLE style="BORDER-COLLAPSE: collapse"
borderColor=#999999 cellSpacing=0 cellPadding=0
width="95%" bgColor=#f1f1f1 border=1>
<TBODY>
<TR>
<TD>
<P
style="MARGIN: 5px; LINE-HEIGHT: 150%"><CODE><SPAN
style="COLOR: rgb(0,0,0)"><SPAN
style="COLOR: rgb(0,0,204)">#</SPAN>
Comment<SPAN
style="COLOR: rgb(0,0,204)">/</SPAN>uncomment
the following <SPAN
style="COLOR: rgb(255,0,0)">line</SPAN> to
disable<SPAN
style="COLOR: rgb(0,0,204)">/</SPAN>enable
debugging<BR><SPAN
style="COLOR: rgb(0,0,204)"></SPAN>DEBUG <SPAN
style="COLOR: rgb(0,0,204)">=</SPAN>
y<BR><BR><BR><SPAN
style="COLOR: rgb(0,0,204)">#</SPAN> Add your
debuggin
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -