您的位置:首页 > 其它

图形界面终端下打印内核调试信息

2012-10-09 17:57 281 查看
(备份)

很多比较新的Linux系统中(如Fedora 16),如果要在图形界面的终端下调试一个内核模块,printk()函数的输出信息是在终端下显示不出来的,需要查看/var/log/messages或通过dmesg命令查看其输出信息,这样不太方便。

而要使系统能打印出printk()函数的信息,又需要在tty下(ctrl+alt+F1~F6进入),这样有时候也很不方便。

可以利用下面函数,使其即使在内核模块中打印信息,也可以在图形界面的终端下输出信息(但是不会记录到/var/log/messages中):

#include <linux/tty.h>
void print_string(char *str)
{
struct tty_struct *tty;
tty = current->signal->tty;
if(tty != NULL)
{
(((tty->driver)->ops)->write)(tty, str, strlen(str));
(((tty->driver)->ops)->write)(tty, "\015\012", 2);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: