gpt4 book ai didi

c - 调用图如何解析函数指针?

转载 作者:行者123 更新时间:2023-12-04 03:14:23 25 4
gpt4 key购买 nike

我正在使用 perl 脚本为 C 实现一个调用图程序。我想知道如何使用“objdump”的输出解析函数指针的调用图?不同的调用图应用程序如何解析函数指针?函数指针是在运行时解析还是可以静态完成?

编辑调用图如何解决程序静态评估中的循环?

最佳答案

当调用语句明确提及 B 时,很容易构建 A-calls-B 的调用图。正如您所注意到的,处理间接调用要困难得多。

静态分析工具通过使用各种计划,通常是保守的(“你得到的太多了”)。

如果没有这样的估计,你就不知道指针包含什么,因此根本无法做出有用的预测(好吧,你可以使用最终的保守估计,它会去任何地方,但我认为你已经拒绝了解决方案)。

我们的 DMS Software Reengineering Toolkitstatic control/dataflow/points-to/call graph analysis已应用于 C 代码的大型系统(~~2500 万行),并生成了这样的调用图。做这件事的机器非常复杂,但您可以在编译器文献的高级主题中找到它。我怀疑您想在 Perl 中实现它。

当您拥有源代码时,这会更容易,因为您至少可以可靠地知道什么是代码,什么不是。您正试图在目标代码上执行此操作,这意味着您甚至无法消除数据。

关于c - 调用图如何解析函数指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4354772/

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