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

visual studio call stack windows does not display filename

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

=> 没有 "Show Filenames",尽管 "Show Line Numbers" 的存在意味着文件名应该是已知的。

我正在使用 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++
...

因为我对中央源文件和项目特定源文件之间的区别特别感兴趣,所以我想在文件名中查看整个路径。

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

你别看了,这个选项根本就没有。

很难猜出为什么 Microsoft 决定不提供它,但它是唯一不明确的调试信息。 softies 每天都需要处理的事情,他们调试的程序通常是从不位于同一目录中的源代码构建在构建服务器上的。

I'd like to browse through the own files, without needing to open all included individual central files...

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

VS17 (15.9.45)、VS19 (16.11.11) 和 VS22 中存在“使用源路径复制”上下文菜单选项。不幸的是,命令window中没有documented option