【发布时间】:2010-10-23 21:00:24
【问题描述】:
我需要通过 VC++ 分析使用英特尔编译器编译的应用程序。 我正在使用 VTune 来分析我的代码。
我的理解是在发布模式下我不会有调试信息 这是探查器在调试模式下分析我的代码所必需的,结果 的分析将不相关。
我该怎么办?是否可以在发布模式下添加调试信息? 如何设置此模式?
如果是这样,我还会从所有优化(内联等)中受益吗?
【问题讨论】:
标签: c++ visual-studio profiling intel-vtune
我需要通过 VC++ 分析使用英特尔编译器编译的应用程序。 我正在使用 VTune 来分析我的代码。
我的理解是在发布模式下我不会有调试信息 这是探查器在调试模式下分析我的代码所必需的,结果 的分析将不相关。
我该怎么办?是否可以在发布模式下添加调试信息? 如何设置此模式?
如果是这样,我还会从所有优化(内联等)中受益吗?
【问题讨论】:
标签: c++ visual-studio profiling intel-vtune
您当然应该启用优化配置(编译器选项 /O3)。 /Zi 是英特尔编译器开关(在 Windows 上),用于启用调试信息。
由于优化,调试信息中可能会由于内联而丢失某些功能,但 VTune 会处理。
【讨论】:
即使在发布目标中,您也可以生成程序数据库文件 (PDB)。转到项目属性,链接器/调试并检查选项“生成程序数据库文件”。它通常类似于“$(TargetDir)$(TargetName).pdb”。现在,这取决于 VTune 是否知道如何解释 PDB 文件...
【讨论】:
函数内联和进程间优化将使您的配置文件难以解释。这就是为什么在调试和发布模式下进行分析是个好主意。如果发布模式仅显示函数 foo 使用了 80% 的程序时间,您可以使用调试配置文件查看内联到 foo 中的函数 bar 正在使用 foo 的 60% 的时间。
【讨论】: