linux - 内核在启动时无限期挂起

标签 linux debugging linux-kernel kernel

我已经用 linux slob 分配器 配置了内核来实现最佳匹配算法。我构建并安装了内核镜像,以便下次可以从中启动。现在,当我尝试启动这个内核时,它会无限期地挂起,光标甚至不会闪烁。光标挂断前打印如下信息:

[0.000325] pid_max: default: 32768 minimum: 301
[0.001461] Security Framework initialized
[0.002108] AppArmor: AppArmor initialized

在此消息之后,光标无限期地挂起。我想知道一些内核调试技巧,这些技巧可以帮助我解决问题或阅读一些好书。 我还配置了 kdb 但不知道如何在这种情况下使用它。任何帮助都适用!!

其他详细信息:

我修改了 slob_page_alloc 函数来实现 best-fit 算法,该算法又被 slob_alloc 函数调用。我正在使用 v3.6.2

最佳答案

基本上,您需要对最适合算法代码调用的外部例程进行 stub (或模拟),以便将最适合代码放入测试程序中。然后使用某种 C 单元测试套件和 C 覆盖工具来帮助确保您已经仔细测试了代码的所有分支和所有状态。 (不幸的是,目前我对此类工具没有任何建议。)

关于linux - 内核在启动时无限期挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13198218/

相关文章:

c - 消息队列回调

debugging - PHP Redis session 不保存

python - 在没有 WinAppDbg 的情况下使用 Python 捕获 3rd 方 exe 的崩溃

linux-kernel - 如何在内核空间代码中获取所有打开的文件句柄?

c - 标记结构初始化、函数及其参数

c++ - iMX6 上的 Qt5 : performance advantage on running on platform eglfs vs xcb

linux - 为什么 grep -vFf png.ll png.lll 不同于 grep -vFf png.lll png.ll?

linux - 如果附加了新接口(interface),如何获得 Linux 内核的通知?

linux - 如何使用环境变量配置 nexus-cli

安卓工作室 2.2.1 : Slow Debugging