gpt4 book ai didi

c - 如何检查某个函数是否可以被另一个特定函数间接调用?

转载 作者:太空宇宙 更新时间:2023-11-04 03:10:40 24 4
gpt4 key购买 nike

假设在一个C写的工程中,有一个函数A和一个函数B

如何验证函数 A 是否在函数 B 的调用树中?就像 B->C->D->...->A

当我在考虑哪个 libvirt API 可以调用 qemu qmp“query-block”时出现了这个问题。由于 qmp“query-block”仅由函数 qemuMonitorJSONQueryBlock 调用。所以这个具体问题变成了:我如何找到哪个 libvirt API 可以调用 qemuMonitorJSONQueryBlock

我认为动态分析很难回答这个问题,因为需要进行大量测试。应该是静态分析的问题。但是我可以找到合适的工具或方法来解决它。最后我将问题总结为第一段。

最佳答案

你可以试试CppDepend及其代码查询语言来创建一些关于依赖项的高级查询,在你的情况下你可以使用这样的查询

    from m in Methods 
let depth0 = m.DepthOfIsUsedBy("__Globals.B()")
where depth0 >= 0 && m.SimpleName=="A" orderby depth0
select new { m, depth0 }

enter image description here

关于c - 如何检查某个函数是否可以被另一个特定函数间接调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56715965/

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