c – 在内核中使用printk
发布时间:2020-12-13 19:04:27 所属栏目:Linux 来源:网络整理
导读:我正在尝试实施自己的新计划().我想调试我的代码. 我可以在sched.c中使用printk函数吗? 我用过printk但是没用.我错过了什么? 最佳答案 你知道调用schedule()的频率是多少吗?它可能比计算机可以将打印缓冲区刷新到日志更快.我建议使用另一种调试方法.例如,
我正在尝试实施自己的新计划().我想调试我的代码. 我可以在sched.c中使用printk函数吗? 我用过printk但是没用.我错过了什么? 最佳答案
你知道调用schedule()的频率是多少吗?它可能比计算机可以将打印缓冲区刷新到日志更快.我建议使用另一种调试方法.例如,通过将kernel.syms文件作为符号表加载并设置断点,在QEMU中运行内核并使用远程GDB.其他虚拟化软件提供类似功能.或者以手动方式完成并遍历您的代码.在中断处理程序中使用printk通常是个坏主意(除非您即将恐慌或停顿).
如果您看到的错误没有经常发生,请考虑使用BUG()或BUG_ON(cond).这些是条件错误消息,不应该像非条件printk那样频繁发生 编辑schedule()函数本身通常是一个坏主意(除非你想支持多个运行队列等…).相反,修改调度程序类会更好,更容易.查看CFS调度程序的代码来执行此操作.如果你想完成别的事情,我可以给出更好的建议. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |