Bootargs格式为Linux内核模块启用动态调试

时间:2015-06-27 06:59:02

标签: linux-kernel

我将zynq_remoteproc.dyndbg =“func ipi_kick + p”添加到uEnv.txt中的bootargs变量中。在启动时,探测模块时无法正确解析:

dynamic_debug:ddebug_add_module: 7 debug prints in module zynq_remoteproc
dynamic_debug:ddebug_dyndbg_module_param_cb: module: zynq_remoteproc dyndbg="func"
dynamic_debug:ddebug_exec_queries: query 0: "func"
dynamic_debug:ddebug_tokenize: split into words: "func"
dynamic_debug:ddebug_parse_flags: bad flag-op f, at start of func
dynamic_debug:ddebug_exec_query: flags parse failed
dynamic_debug:ddebug_exec_queries: processed 1 queries, with 0 matches, 1 errs

zynq_remoteproc =“+ p”确实有效,但可以启用模块中的每个调试。

从命令行启用:

echo -n "module zynq_remoteproc func ipi_kick +p" > <debugfs>/dynamic_debug/control

在bootargs中使用什么样的格式来为一个函数启用内核调试语句?

2 个答案:

答案 0 :(得分:2)

我知道问题已经过时了,但我没有在这个问题上找到其他答案。

我可以确认U-Boot需要斜杠。这是我用来启用动态调试输出的命令。

fw_setenv bootargs_debug dyndbg='\\"file file.c +p\\"'

我想如果您在 txt 文件中手动指定参数,则适用相同的条件。

答案 1 :(得分:1)

可能uboot需要&#34; \&#34;:

dyndbg=\"file path/to/you/file.c +p\"
dyndbg=\"file path/to/you/file.c -p\"
dyndbg=\"module module_name1 +p\; module module_name2 +p\"
dyndbg=\"func just_functon_from_kallsyms +p\"

来自lsmod的模块名称或/ usr / lib / modules / $(uname -r)/modules.builtin(&#39; - &#39;更改为&#39; _&#39;)。

相关问题