gpt4 book ai didi

android - 如何使 ftrace function_graph 跟踪器可以使用 linux 内核函数?

转载 作者:IT王子 更新时间:2023-10-28 23:54:54 48 4
gpt4 key购买 nike

我想在内核启动过程中使用 ftrace function_graph 跟踪函数以了解它的作用,但它在 available_filter_functions 中不可用。

我尝试用 EXPORT_SYMBOL() 导出它,猜测它会使它可用,但事实并非如此。

你有解决办法吗?

有关信息,我要跟踪的函数是 persistent_ram_init_ringbufferpersistent_ram_early_init在 Android 内核 3.4 中。

我通读了文档,但没有发现任何内容,grep 也没有提供更多帮助...

谢谢

最佳答案

问题是那些函数用 __init 和 __devinit 注释,它们被 ftrace 函数跟踪器列入黑名单。

为什么?因为作为模块初始化函数(或内核初始化函数),它们在初始化期间加载并在初始化完成时删除。 ftrace 跟踪的每个函数都保存在一个特殊的紧凑表中。目前,没有办法告诉 ftrace 这些函数已经被删除(释放)并且 ftrace 应该从它的表中删除它们。如果我们只是忽略它,那么当启用函数跟踪时,ftrace 将尝试修改不再存在的位置并可能导致各种问题(还记得 e1000e 错误吗?)。

如果您真的想追踪它们,请删除那些注释。然后它们应该出现在要跟踪的函数列表中。

关于android - 如何使 ftrace function_graph 跟踪器可以使用 linux 内核函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15271551/

48 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com