社区
Linux_Kernel
帖子详情
请问怎么调试驱动,printk()打印的信息在哪儿能看见?
cokeclassic
2007-05-11 08:28:45
请问怎么调试驱动,printk()打印的信息在哪儿能看见?我在超级终端观察printf()打印的信息时,怎么不见驱动中printk()打印信息呢?
驱动的调试是不是需要一个小的应用程序去调用驱动中的函数啊?谢谢
...全文
4398
12
打赏
收藏
请问怎么调试驱动,printk()打印的信息在哪儿能看见?
请问怎么调试驱动,printk()打印的信息在哪儿能看见?我在超级终端观察printf()打印的信息时,怎么不见驱动中printk()打印信息呢? 驱动的调试是不是需要一个小的应用程序去调用驱动中的函数啊?谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hzcpig
2007-05-19
打赏
举报
回复
前面不是回答了么。
printk不显示在超级终端上,保存在/var/log/messages。
可以在命令行上输入dmesg命令查看,如果只想显示最后几行,可以用
dmesg | tail - 8
cokeclassic
2007-05-19
打赏
举报
回复
想在超级终端看见printk输出的信息,是不是要用GDB来调试啊?如果是,该怎么用?谢谢
cokeclassic
2007-05-19
打赏
举报
回复
joyself(独来读网)
-------------
我在驱动中每个函数体的第一行都写了printk打印信息的
joyself
2007-05-16
打赏
举报
回复
我觉得楼主说的不是很清楚。
1) 启动时的信息未打印?
还是
2)在启动后,调试时候未看到printk打印的信息?
你确定你的驱动程序会打印消息吗?
hzcpig
2007-05-16
打赏
举报
回复
1
驱动的调试是不是需要一个小的应用程序去调用驱动中的函数啊?谢谢
哦,刚才没看清楚你的问题。知道你的意思了。
Linux下程序分为内核态和用户态,我们编写的驱动是内核态的,通过insmod加载.ko模块,再向/dev中注册设备节点后,用户态的程序就可以通过open,read,write,ioctl,release等方法访问,所以按你的意思,需要写一个用户态的可执行文件对设备进行操作,调试设备是否驱动成功。
hzcpig
2007-05-16
打赏
举报
回复
2
printk不显示在超级终端上,保存在/var/log/messages。
可以通过dmesg命令查看,如果只想显示最后几行,可以用
dmesg | tail - 8
驱动一般是软硬件联调
软件方法有:
1. 用打印调试(printk)
2. 使用 /proc 文件系统调试
3. 用strace 命令观察调试
4. 使用kgdb 调试
(软件调试方法可以参考Linux Device Driver 3rd Chapt 04
硬件调试一般是用示波器探测波形。
aero_boy
2007-05-16
打赏
举报
回复
如果你是在X Windows下的XTerm中insmod的,你不会看到输出,使用dmesg就可能看到在加载和卸载模块时的输出内容,只有直接在console下加载才能直接显示到屏幕上。
jacky_emdoor
2007-05-15
打赏
举报
回复
vim /etc/sysconf 查看你的内核的调试信息放倒哪里了
默认是在/var/log/messages
无知者无谓
2007-05-14
打赏
举报
回复
请问如果要象终端打印输出,该怎么做呢?谢谢
===================================
不知道lz看的什么书,我想那上面应该有告诉你,不要在X下调试内核模块的吧?
用真正的终端,而不是虚拟终端!
cokeclassic
2007-05-12
打赏
举报
回复
up
cokeclassic
2007-05-11
打赏
举报
回复
silajoin(带三个表)
---------------
请问如果要象终端打印输出,该怎么做呢?谢谢
silajoin
2007-05-11
打赏
举报
回复
printk()打印的信息一般在/var/log/messages文件里
驱动程序一般通过注册自己的回掉函数供用户程序使用,看一下LDD3(Linux Device driver 3),上面讲的很清楚
Linux设备
驱动
程序——
驱动
调试
pr
int
k()
前一段时间学了一下,
pr
int
k()
打印
语句,现在用起来又忘了,看了一下前一段时间做的笔记,不是很详细,所以决定再写一下和
pr
int
k相关的
调试
的东西。算是复习一下吧。 首先,先熟悉一下
pr
int
k函数,这个函数和
pr
int
f函数很类似。只不过一个运行在用户态,一个运行在内核态。 首先需要说的是可以通过以下几种途径查看
pr
int
k()函数的
打印
信息
[Linux 基础] --
驱动
调试
神器
pr
int
k 你掌握了吗?
导读 刚刚开始做Linux相关开发工作时,深感Linux内核代码庞大,要加些自己的
驱动
进内核代码树,常常深陷bug的泥沼难以自拔,今天来分享一下内核
调试
利器
pr
int
k的使用心得。 前面一段时间很忙,后期更文频率会渐渐回归正常频率,尽量会保证每周一到两更。感谢各位朋友的关注而没有弃我而去,我定不负厚爱,会持续输出些日常技术工作中的心得体会,如对朋友们有些许帮助,也烦请帮忙点个赞或者在看(这并不会对各位有何不利的影响哈~~~),这也是对我坚持持续输出的大大激励!
pr
in...
驱动
调试
神器
pr
int
k你掌握了吗?
关注、星标嵌入式客栈,精彩及时送达[导读] 刚刚开始做Linux相关开发工作时,深感Linux内核代码庞大,要加些自己的
驱动
进内核代码树,常常深陷bug的泥沼难以自拔,今天来分享一下内核...
linux下关闭
pr
int
k
打印
信息
以及通过网络查看方法
我们在linux底层
驱动
或者kernel中调用的
pr
int
k函数其作用是将
pr
int
k的内容输出到控制台,但
pr
int
k实质是将需要输出的内容写入底层环形输出数据缓冲区,linux根据控制将数据输出到控制台; 基于此,我们可以在linux系统下手动关闭
pr
int
k的
信息
输出到控制台(目的是即需要输出
信息
,但又不想通过频繁的串口输出中断输出到控制台,频繁串口中断将影响其他
驱动
实时性要求),此时使用
调整内核
pr
int
k
打印
级别--减少启动时的
打印
信息
有时
调试
内核模块,
打印
信息
太多了,可以通过修改/
pr
oc/sys/kernel/
pr
int
k文件内容来控制。默认设置是6 4 1 7 # cat /
pr
oc/sys/kernel/
pr
int
k 7 4 1 7 该文件有四个数字值,它们根据日志记录消息的重要性,定义将其发送到何处。关于不同日志级别的更多
信息
,请查阅syslog(2)联机帮助。上面显
Linux_Kernel
4,469
社区成员
17,459
社区内容
发帖
与我相关
我的任务
Linux_Kernel
Linux/Unix社区 内核源代码研究区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章