gpt4 book ai didi

c - 在内核中使用 printk

转载 作者:IT王子 更新时间:2023-10-29 01:08:54 29 4
gpt4 key购买 nike

我正在尝试实现我自己的新 schedule()。我想调试我的代码。

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

我使用了 printk 但它不起作用。我错过了什么?

最佳答案

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

如果您看到的错误没有发生,通常考虑使用 BUG()BUG_ON(cond) 代替。这些是有条件的错误消息,不应像非条件 printk

那样频繁发生

编辑 schedule() 函数本身通常不是一个好主意(除非您想支持多个运行队列等...)。改为修改调度程序类会更好也更容易。查看 CFS 调度程序的代码来执行此操作。如果您想完成其他事情,我可以提供更好的建议。

关于c - 在内核中使用 printk,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14287687/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com