c – 在内核中使用printk

前端之家收集整理的这篇文章主要介绍了c – 在内核中使用printk前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我正在尝试实施自己的新计划().我想调试我的代码.

我可以在sched.c中使用printk函数吗?

我用过printk但是没用.我错过了什么?

最佳答案
你知道调用schedule()的频率是多少吗?它可能比计算机可以将打印缓冲区刷新到日志更快.我建议使用另一种调试方法.例如,通过将kernel.syms文件作为符号表加载并设置断点,在QEMU中运行内核并使用远程GDB.其他虚拟化软件提供类似功能.或者以手动方式完成并遍历您的代码.在中断处理程序中使用printk通常是个坏主意(除非您即将恐慌或停顿).

如果您看到的错误没有经常发生,请考虑使用BUG()或BUG_ON(cond).这些是条件错误消息,不应该像非条件printk那样频繁发生

编辑schedule()函数本身通常是一个坏主意(除非你想支持多个运行队列等…).相反,修改调度程序类会更好,更容易.查看CFS调度程序的代码来执行此操作.如果你想完成别的事情,我可以给出更好的建议.

猜你在找的Linux相关文章