visual studio调用堆栈窗口不显示文件名

时间:2017-02-17 10:18:30

标签: visual-studio visual-studio-2017

我在Visual Studio中调试程序,我想知道为什么我的程序在特定单元(源代码文件)中的函数旁边传递。
我认为调用堆栈会显示这一点,但似乎并非如此。此外,可显示条目列表甚至没有提到文件名:

  • 显示模块名称
  • 显示参数类型
  • 显示参数名称
  • 显示参数值
  • 显示行号
  • 显示字节偏移

=>没有“显示文件名”,虽然“显示行号”的存在意味着文件名应该是已知的。

我正在使用Visual Studio Professional 2017 for Windows Desktop。

这是配置问题,我的Visual Studio安装中是否存在此问题(如果是这样,哪个版本具有此功能),或者在Visual Studio中根本没有预见到这一点?

为了更好地理解,我的调用堆栈如下所示:

<product>.dll!<first_class>::<first_class>(double dFy, double dFx) Line 102 C++
<product>.dll!<subfunction>(double dFv, double dFh) Line 1450   C++
<product>.dll!<subsubfunction>(double dFv, double dFh, int number) Line 1672    C++
...

虽然我想看到类似的内容:

<product>.dll!<first_class>::<first_class>(double dFy, double dFx) File <file1.c> Line 102  C++
<product>.dll!<subfunction>(double dFv, double dFh) File <file2.c> Line 1450    C++
<product>.dll!<subsubfunction>(double dFv, double dFh, int number) File <file2.c> Line 1672 C++
...

由于我对中央源文件和项目特定源文件之间的区别特别感兴趣,我想在文件名中看到整个路径。

2 个答案:

答案 0 :(得分:1)

据我所知,没有这样的选项(在任何版本的Visual Studio中)。您唯一能做的就是右键单击调用堆栈并按下转到源文件。然后你会看到源代码,希望你会知道它是哪个版本的文件。据我所知,你也没有插件可以实现。

right-click on call stack and press go to source file

答案 1 :(得分:1)

您可以停止查看,该选项根本不可用。

很难猜到为什么微软决定不提供它,但它是唯一不明确的调试信息。软件每天需要处理的东西,他们调试的程序通常是在源代码的构建服务器上构建的,而不是位于相同的目录中。

  

我想浏览自己的文件,而无需打开所有包含的个别中央文件......

这不是必需的,只需双击您感兴趣的堆栈跟踪中的特定条目。如果调试器知道源文件,那么它将自动打开并将插入符号放在语句中。将鼠标悬停在编辑器选项卡上会显示该文件的路径。如果调试器找不到源文件,那么您将获得一个对话框以导航到正确的目录。