SylixOS內核打印調試方法.

1.增長系統日誌消息緩衝最大數量網絡

在使用printk的時候,常常會碰到已經加了打印語句,可是終端上卻並無顯示出來信息這種狀況,緣由是系統默認的緩衝大小有限,而打印信息又比較多,從而致使後面的打印信息覆蓋了前面的信息,形成打印丟失。app

解決方法是修改base中的LW_CFG_MAX_LOGMSGS這個宏,系統默認的值是20,其所在的文件路徑爲「libsylixos/SylixOS/config/system/system_cfg.h」,以下圖所示:函數

http://10.9.1.16/bbs/data/attachment/forum/201805/04/154650obc2w8q55ffcbbfk.png

2.printk輸出定向到文件調試

本操做主要用於x86平臺驅動調試,由於x86平臺主板通常沒有串口輸出,printk的信息是輸出到屏幕的,當有大量調試信息時,經過屏幕不能查看完整的調試信息,這時能夠將printk的信息輸出到文件中,而後查看,方法以下所示:日誌

int log_init (void)同步

{it

        int fd;登錄

        int width;file

        fd_set fdset;終端

 

        fd = open("/apps/log1.txt", O_RDWR | O_CREAT | O_TRUNC);

        if (fd < 0) {

                printf("open /apps/log1.txt fail\n");

                return -1;

        }

 

        logFdGet(&width, &fdset);

        FD_SET(fd, &fdset);

        logFdSet(max(fd,width)+1, &fdset);

 

        return 0;

}

只要在驅動初始化的時候調用上面函數,就能夠將調試信息記錄到log1.txt中。 

2.printk輸出輸出到網絡終端

a.telnet登陸到系統;

b.輸入files命令查看當前系統打開的文件描述符,以下圖所示:

http://10.9.1.16/bbs/data/attachment/forum/201807/15/140234cwcwkt6kobzku8kp.png

c.查看/dev/pty/xx.hst對應的fd,如上圖中是12;

d.輸入logfileadd 12;

e.在驅動中使用printk輸出的信息就會同步輸出到網絡終端上;

相關文章
相關標籤/搜索