我在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++
...
由于我对中央源文件和项目特定源文件之间的区别特别感兴趣,我想在文件名中看到整个路径。
答案 0 :(得分:1)
据我所知,没有这样的选项(在任何版本的Visual Studio中)。您唯一能做的就是右键单击调用堆栈并按下转到源文件。然后你会看到源代码,希望你会知道它是哪个版本的文件。据我所知,你也没有插件可以实现。
答案 1 :(得分:1)
您可以停止查看,该选项根本不可用。
很难猜到为什么微软决定不提供它,但它是唯一不明确的调试信息。软件每天需要处理的东西,他们调试的程序通常是在源代码的构建服务器上构建的,而不是位于相同的目录中。
我想浏览自己的文件,而无需打开所有包含的个别中央文件......
这不是必需的,只需双击您感兴趣的堆栈跟踪中的特定条目。如果调试器知道源文件,那么它将自动打开并将插入符号放在语句中。将鼠标悬停在编辑器选项卡上会显示该文件的路径。如果调试器找不到源文件,那么您将获得一个对话框以导航到正确的目录。