SylixOS内核打印调试方法

1.增加系统日志消息缓冲最大数量

在使用printk的时候,经常会碰到已经加了打印语句,但是终端上却并没有显示出来信息这种情况,原因是系统默认的缓冲大小有限,而打印信息又比较多,从而导致后面的打印信息覆盖了前面的信息,造成打印丢失。

解决方法是修改base中的LW_CFG_MAX_LOGMSGS这个宏,系统默认的值是20,其所在的文件路径为“libsylixos/SylixOS/config/system/system_cfg.h”,如下图所示:

2.printk输出定向到文件

本操作主要用于x86平台驱动调试,因为x86平台主板一般没有串口输出,printk的信息是输出到屏幕的,当有大量调试信息时,通过屏幕不能查看完整的调试信息,这时可以将printk的信息输出到文件中,然后查看,方法如下所示:

int log_init (void)

{
        int fd;

        int width;

        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中。

3.printk输出输出到网络终端

a.telnet登录到系统;

 

b.输入files命令查看当前系统打开的文件描述符,如下图所示:

c.查看/dev/pty/xx.hst对应的fd,如上图中是8;

d.输入logfileadd 12;

e.在驱动中使用printk输出的信息就会同步输出到网络终端上;
————————————————
版权声明:本文为CSDN博主「databuser」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/databuser/article/details/81903557

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值