在启动时为多个文件启用动态调试

如何通过向Linux内核提供命令行参数来启动多个文件的动态调试( pr_debug )?

我试图提供以下内容作为论据 -

dyndbg='file drivers/<filename1> +p file drivers/<filename2> +p file drivers/<filename3> +p'

但是,动态调试未启用。

我的语法正确吗?


用分号分隔控制命令。

dyndbg='file drivers/<filename1> +p; file drivers/<filename2> +p; file drivers/<filename3> +p'

  • 首先,检查在.config文件中是否启用了CONFIG_DYNAMIC_DEBUG=y

  • 测试内核启动时是否正常工作。

    echo -n 'module module_name +p' > /debugfs/dynamic_debug/control
    
  • 使用dyndbg=QUERY指定时,确保QUERY格式正确(模块/文件夹的路径正确)

  • 对于内置模块,使用dyndbg='module module_name +p'

    对于可加载模块,请使用module_name.dyndbg=<query>例如: xhci_hcd.dyndbg=+p

    您可以通过编写/etc/default/grub文件将其添加到Linux默认命令行中,如下所示:

    GRUB_CMDLINE_LINUX_DEFAULT="xhci_hcd.dyndbg=+p"
    

    参考链接:

    在启动过程中调试消息

    要在启动过程中激活核心代码和内置模块的调试消息,甚至在用户空间和调试信息存在之前,请使用dyndbg =“QUERY”,module.dyndbg =“QUERY”或ddebug_query =“QUERY”(ddebug_query已过时dyndbg和弃用)。 QUERY遵循上述语法,但不得超过1023个字符。 您的引导程序可能会施加较低的限制。

    这些dyndbg参数在处理完ddebug表之后进行处理,作为arch_initcall的一部分。 因此,您可以通过此引导参数在此arch_initcall之后的所有代码中启用调试消息。

    链接地址: http://www.djcxy.com/p/83037.html

    上一篇: Enable dynamic debug for multiple files at boot

    下一篇: Error installing Sublime Text 3 Package Control bz2