社区
Linux_Kernel
帖子详情
请问怎么调试驱动,printk()打印的信息在哪儿能看见?
cokeclassic
2007-05-11 08:28:45
请问怎么调试驱动,printk()打印的信息在哪儿能看见?我在超级终端观察printf()打印的信息时,怎么不见驱动中printk()打印信息呢?
驱动的调试是不是需要一个小的应用程序去调用驱动中的函数啊?谢谢
...全文
4406
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
驱动
开发
调试
-- 打开dev_dbg()【转】
本文介绍了如何在Linux设备
驱动
中启用dev_dbg()
调试
打印
。通过在头文件前定义DEBUG宏,可以使用dev_dbg()调用
pr
int
k(KERN_DEBUG)进行
调试
信息
输出。同时,文章提到了配置选项ADC_DEV_DEBUG,用于决定是否显示adc dev的
调试
消息。
Linux内核
调试
技术指南
本文介绍了在Linux环境下如何
调试
复杂的
驱动
程序,特别是针对内核启动过程中出现的问题。提供了两种有效的
调试
技术:一是使用
pr
int
ascii()函数确认start_kernel()是否运行;二是
打印
pr
int
k()缓存
信息
来检查串口波特率问题。
内核
调试
方法
本文介绍了内核
调试
的多种方法,包括在
驱动
程序中用
pr
int
k()
打印
调试
信息
、用GDB进行内核级
调试
、使用Kdump捕获崩溃转储、利用动态
调试
工具bpftrace或SystemTap、借助硬件仿真器或JTAG
调试
器,还可查看分析日志、用静态代码分析工具及进行模块加载卸载测试。
34.Linux-
pr
int
k分析、使用__FILE__, __FUNCTION__, __LINE__
调试
本文详细剖析Linux内核中的
pr
int
k()函数,探讨其工作原理,包括如何根据命令行参数选择输出设备,以及如何利用
pr
int
k()进行
驱动
调试
。
Hive自定义UDF和UDTF 函数
本文详细介绍了如何在Hive中创建和使用自定义UDF(User-Defined Function)和UDTF(User-Defined Table-Generating Functions)。UDF是一进一出的函数,需要实现evaluate方法;而UDTF则需要实现initialize,
pr
ocess, close三个方法,能实现一进多出。在集群中使用UDF和UDTF,需要将jar包放入hive的lib目录,并通过add jar命令加载。同时,文章还提到了可能出现的依赖问题及解决办法。 51084439,2391601,理解Linux内核
打印
级别:
pr
int
k()
调试
信息
解析,['Linux内核', '系统
调试
', '
驱动
开发']
Linux_Kernel
4,469
社区成员
17,458
社区内容
发帖
与我相关
我的任务
Linux_Kernel
Linux/Unix社区 内核源代码研究区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章