我正在尝试弄清楚代码库是如何工作的。我想要一些工具来分析我运行的程序,并告诉我每个线程以什么顺序调用哪些函数。这样的工具存在吗?我会用什么谷歌条款来找到这样的程序?
注意:使用VS2008 / Win7 / C ++
答案 0 :(得分:7)
我认为通话图可能会对您有所帮助。大多数分析器可以在分析后生成调用图。分析还可以帮助您确定最常使用的代码。
另一种可能性是使用工具生成序列图。这不会特别向您显示运行时期间发生的事情,但它会清楚地说明代码正在做什么。
此致 德克
答案 1 :(得分:6)
分析器或代码覆盖率工具会告诉您。
答案 2 :(得分:5)
您正在搜索分析器。这个StackOverflow thread将帮助您找到一个。
答案 3 :(得分:2)
答案 4 :(得分:1)
您正在寻找的是剖析器。在Linux系统上,我会说'gprof',但我无法真正命名MSVC的首选工具。
答案 5 :(得分:1)
WinAPIOverride32 tool,它可能对您的需求有用。
答案 6 :(得分:0)
我最终使用的解决方案是John Panzer's Call Moniter class。这段代码与我的程序一起运行,并在调用时以及它们的全名(包括类)输出函数,当它们完成时,使用缩进来显示函数嵌入其他函数的深度。为了摆脱多余的数据需要一点修改,但它工作得很漂亮。我可能会修改它以输出到excel而不是像调用那样输出到控制台。
感谢大家的回答。看看所有结果,他们都没有完成这项工作,但它帮助我了解发生了什么。
一些建议的答案可能有效,但它们都是我的头脑,或者我无法让它们运作,或者我找不到我想要的功能。
编辑: Call Moniter类最终成为另一个虚假路径。它按照它们被调用的顺序显示函数名称,并嵌套它们以显示哪些函数调用哪个,这很好。我不得不过滤掉一些噪音,这很好。但最后,当我查看结果时,这个班级错过了所有被调用函数的一半!哦,我不知道它是否适用于线程,因为调用线程的函数是一些被跳过的函数。
根据我的理解,我想要的是一个调用图。
答案 7 :(得分:-1)