通常要打印start_kernel
中执行的当前函数,我们可以在启用printk("%s %d",__FUNCTION__,__LINE__)
的情况下使用early_printk
。但有没有办法通过用其他东西替换__FUNCTION__
来打印调用者的名字。这适用于ARM体系结构。我在__builtin_return_address(1)
的一个函数中使用了start_kernel
,它在ARM中不起作用,因为ARM在R14中存储了返回地址。
我还尝试在char sym[KSYM_SYMBOL_LEN];
函数调用后打印sprint_symbol(sym,(unsigned long)tick_init);
tick_init
之类的符号名称。但它不起作用。我认为这是因为kallsyms在启动过程中不会出现这么早。有没有办法让它发挥作用。