【发布时间】:2015-06-07 06:22:16
【问题描述】:
假设内核空间中有一个函数指针(sock->ops->ioctl())。 现在如何使用 printk 或您知道的任何其他方法打印存储在此指针中的函数的名称。
【问题讨论】:
标签: c kernel function-pointers
假设内核空间中有一个函数指针(sock->ops->ioctl())。 现在如何使用 printk 或您知道的任何其他方法打印存储在此指针中的函数的名称。
【问题讨论】:
标签: c kernel function-pointers
根据 Orace 的回答,您可以尝试使用 %pS 而不是 %pF。我已经测试过%pF 不能在 5.10.x 版本的内核中工作,但 %pS 可以工作。此外,我在vsprintf.c找到了相关评论-
“
%pf和%pF已被废弃,后来被删除,取而代之的是%ps和%pS。重复使用这些说明符时要小心”。
【讨论】:
正如上面所说的here:
在Linux内核中,可以直接使用“%pF”格式的printk!
void *func = &foo; printk("func: %pF at address: %p\n", func, func);
同样你知道printk参与其中,你可能已经使用some tools找到documentationabout it。
【讨论】: