Linux kernel 如何在Linux内核中用函数指针打印函数名?
我正在阅读Linux内核代码。有些函数由函数指针调用。我想知道所有这些函数的调用顺序,所以我试着打印函数。但我还没弄明白怎么做 这是我的密码:Linux kernel 如何在Linux内核中用函数指针打印函数名?,linux-kernel,Linux Kernel,我正在阅读Linux内核代码。有些函数由函数指针调用。我想知道所有这些函数的调用顺序,所以我试着打印函数。但我还没弄明白怎么做 这是我的密码: for (fn = initcall_levels[level]; fn < initcall_levels[level+1]; fn++) { //printk("xhl -- %pF \n", fn); do_one_initcall(*fn); } for(fn=initcall_levels[level];fn @ TeD
for (fn = initcall_levels[level]; fn < initcall_levels[level+1]; fn++) {
//printk("xhl -- %pF \n", fn);
do_one_initcall(*fn);
}
for(fn=initcall_levels[level];fn
内核的printk()
支持特殊的%p
格式说明符:
符号/函数指针
有关完整列表,请参阅
对于您的示例,设置<代码> InCaldBebug(1)<代码>内核CMDLIN选项可能是一个更好的方法,而不是手动添加<代码> Primtk()。< /P> @ TeDyxIon 53:如果答案对您有用,请考虑。
%pF versatile_init+0x0/0x110
%pf versatile_init
%pS versatile_init+0x0/0x110
%pSR versatile_init+0x9/0x110
(with __builtin_extract_return_addr() translation)
%ps versatile_init
%pB prev_fn_of_versatile_init+0x88/0x88