Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux kernel 在ARM内核启动期间打印类似符号表的条目_Linux Kernel_Arm_Linux Device Driver_Kernel Module_Armv7 - Fatal编程技术网

Linux kernel 在ARM内核启动期间打印类似符号表的条目

Linux kernel 在ARM内核启动期间打印类似符号表的条目,linux-kernel,arm,linux-device-driver,kernel-module,armv7,Linux Kernel,Arm,Linux Device Driver,Kernel Module,Armv7,我们是否可以编写一个函数来打印符号表之类的条目,即在内核引导期间,c03441a0 t dmi_breaked,以调试ARM体系结构。这在早期启动时是必需的。可能会有所帮助。这些将增加二进制文件的大小。我敢肯定,即使在早期启动时,它们也能正常工作(取决于“早期”的含义;显然,在第一条指令上或在设置堆栈之前,任何东西都不起作用,等等)。似乎做了您想做的事情,但取决于配置。@artlessnoise您能指出堆栈在内核源代码中的设置位置吗?它最初是在中完成的,但使用的堆栈不同。我的意思是你需要不同的方

我们是否可以编写一个函数来打印符号表之类的条目,即在内核引导期间,
c03441a0 t dmi_breaked
,以调试ARM体系结构。这在早期启动时是必需的。

可能会有所帮助。这些将增加二进制文件的大小。我敢肯定,即使在早期启动时,它们也能正常工作(取决于“早期”的含义;显然,在第一条指令上或在设置堆栈之前,任何东西都不起作用,等等)。似乎做了您想做的事情,但取决于配置。@artlessnoise您能指出堆栈在内核源代码中的设置位置吗?它最初是在中完成的,但使用的堆栈不同。我的意思是你需要不同的方法来调试head.S.@artlessnoise我可以通过一些函数从内核早期启动时的内核映像中获取kallsyms使用的符号表,并打印符号名以进行调试吗。我之所以需要这样做,是因为我听说符号名是在内核启动后生成的,我希望它在启动时用于调试错误。修复是在head.S(具有自己调试功能的ARM assembler)中完成的,因此如果您不想调试它,而只想调试“C”代码,那么您可以在任何地方使用
sprintf_symbol
。此外,通过内核黑客攻击和配置调试,您可以使用
printscii()
并将其推入
vprintk\u emit
,如其他地方所述。