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

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

a.telnet登录到系统;

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

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

d.输入logfileadd 12;

e.在驱动中使用printk输出的信息就会同步输出到网络终端上;

转载于:https://blog.51cto.com/11080845/2162307

SylixOS内核打印调试方法相关推荐

  1. 关闭Linux内核打印信息方法

    调试内核模块过程中,kmsg打印信息太多,通过修改/proc/sys/kernel/printk文件内容来控制. 一般通过 echo 0 > /proc/sys/kernel/printk关闭打 ...

  2. 【FFMPEG系列】之打印调试

    1.打印调试方法 AVCodecContext *avctx 在创建解码上下文的时候,对其中的debug成员进行赋值,如: avctx->debug = FF_DEBUG_MMCO;另外 log ...

  3. Linux内核调试方法总结【转】

    转自:http://my.oschina.net/fgq611/blog/113249 内核开发比用户空间开发更难的一个因素就是内核调试艰难.内核错误往往会导致系统宕机,很难保留出错时的现场.调试内核 ...

  4. 第3章 Linux内核调试手段之内核打印

    开始 前面说的话 在我写代码的生涯里,我看到过很多大神炫耀自己的调试手段,也看到很多大神写过非常厉害的代码,我认为,相比于写代码,调试更加重要,而那些能在写代码的时候就加入了自己的调试信息的,就更加厉 ...

  5. Linux内核调试方法总结

    [转]Linux内核调试方法总结 目录[-] 一  调试前的准备 二  内核中的bug 三  内核调试配置选项 1  内核配置 2  调试原子操作 四  引发bug并打印信息 1  BUG()和BUG ...

  6. 我偶尔会用到的调试方法 | Linux 内核

    文章转自我朋友的公众号,以下为内容正文 ==== 大家好,我是你们的工具人老吴. 今天,和大家分享一下几个 Linux 内核的调试小技巧. 当你遇到一个 bug,你调试了 1 年半载都解决不了,这其实 ...

  7. 说说几个我偶尔会用到的调试方法 | Linux 内核

    大家好,我是你们的工具人老吴. 今天,和大家分享一下几个 Linux 内核的调试小技巧. 当你遇到一个 bug,你调试了 1 年半载都解决不了,这其实一件好事. 因为它会时刻提醒你平时写代码时要谨慎. ...

  8. Linux内核调试方法【转】

    转自:http://www.cnblogs.com/shineshqw/articles/2359114.html kdb:只能在汇编代码级进行调试: 优点是不需要两台机器进行调试. gdb:在调试模 ...

  9. linux kernel内核、驱动日志调试方法(一)

    本文是对网络资料进行总结归纳,抄录其他博客资料,如有侵权,请告知,进行删除 一:通过打印调试printk printk是打印内核消息的函数,printk通过附加不同日志级别(loglevel)或者说消 ...

最新文章

  1. 编译vim-8.2并配置jedi-vim插件
  2. 我的醉驾拘留15日记----第二日凌晨 午夜惊梦
  3. 京东自动评论脚本_京东时光机python脚本 自动完成任务
  4. LINUX 内存使用情况
  5. 博弈——Nim博弈(hdu2176,1850,1851,1907,1849)
  6. 【Node】—nodemon的简单使用
  7. 资管运营BAND原创|那些年,资管运营业务交互中的酸甜苦辣
  8. 电阻电容封装买大了怎么办呢
  9. Windows中JetBrains mono字体安装方法
  10. Foobar2000播放软件的玄学
  11. JAVA/JSP小区物业管理系统
  12. pg数据库的基本操作
  13. 【数竞笔记2】—— 常见积分方法
  14. easyui datebox控件点击今天按钮不触发onSelect事件的解决方法
  15. 惠普笔记本电脑重装系统后找不到引导设备
  16. Android reckon 控制项目打包版本
  17. 机器学习中向量函数的求导问题
  18. 如何判断一个程序没有响应
  19. python+pyecharts画地图
  20. H2O机器学习平台容器化部署——基于Docker

热门文章

  1. 梅宏院士:操作系统变迁有20年周期律,泛在计算是一片新蓝海
  2. ​​《自然》2020年十大科学发现出炉:病毒,冷冻电镜与快速射电暴
  3. 智源研究院首席科学家刘嘉:认知神经的未来发展规划是什么?
  4. 从全球最赚钱的20家公司,我们可以发现什么?
  5. 一张图看懂微软人工智能
  6. 微软大神“玩”出新花样,求平均值代码还能这样写?
  7. 在相同的后端上重新设计前端是什么效果? | 每日趣闻
  8. CPU 深夜狂飙,一帮大佬都傻眼了......
  9. ant-design-pro Login 中的 UserName 和 Password 的验证规则 rules
  10. 前端项目课程7 banner设计注意事项