我想说我想找到某个特定类的成员函数的所有调用。除了查找调用之外,我还对将参数传递给每个调用感兴趣。例如,在分析此代码后:
anyfile.cpp:
myobject.AFunction("string", 0);
otherfile.cpp:
otherobject.AFunction("anystring", aValue);
我希望输出如下:
AFunction called in file "anyfile.cpp" with arguments "string" and 0
AFunction called in file "otherfile.cpp" with arguments "anystring" and aValue=5
...
我想过使用regexp解析所有源代码,但当然这不起作用,因为AFunction可能出现在其他类中,并且不会得到用作参数的变量的值。
我认为我可能需要某种静态分析工具,我也对从未(或很少)发生的调用感兴趣。即,运行程序并尝试生成一些日志不是一个解决方案。调用该方法的地方有数百个,但软件很少接到这些调用(或者可能永远不会)。
答案 0 :(得分:1)
我建议你试试cscope。它构建一个数据库文件,因此您不必在每次运行时重新构建符号表等。使用一些vim脚本,您甚至可以设法将其输出到我确定的文件中。
答案 1 :(得分:1)
我建议你试试Doxygen。它可以为来电者和被叫者建立文档。