图形界面终端下打印内核调试信息
(备份)
很多比较新的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); } }
 
                    
                     
                    
                 
                    
                
 
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号