C++ visualc&x2B+;调试器未显示返回值

C++ visualc&x2B+;调试器未显示返回值,c++,visual-studio,visual-studio-debugging,debug-symbols,C++,Visual Studio,Visual Studio Debugging,Debug Symbols,当我通过以下程序使用Visual Studio调试器单步执行时,任何istringstream方法调用的“自动”窗口中都不会显示任何返回值 它显示了vector::size()的返回值 #include "stdafx.h" #include <sstream> #include <vector> int main() { std::vector<char>{}.size(); //<-- debugger shows return

当我通过以下程序使用Visual Studio调试器单步执行时,任何
istringstream
方法调用的“自动”窗口中都不会显示任何返回值

它显示了
vector::size()
的返回值

#include "stdafx.h"
#include <sstream>
#include <vector>

int main()
{
    std::vector<char>{}.size();      //<-- debugger shows return value
    std::istringstream{"x"}.get();   //<-- no return value shown
    std::istringstream{"x"}.good();  //<-- no return value shown
    std::istringstream{"x"}.tellg(); //<-- no return value shown
    return 0;
}
#包括“stdafx.h”
#包括
#包括
int main()
{

std::vector{}.size();//事实证明,这是动态链接到VC++运行时时缺少调试符号的问题。例如,在默认安装Visual Studio 2017后,VC++运行时的调试符号不可用

可能的解决方案:

  • 静态链接到VC++运行时(项目属性>C/C++>代码生成>运行时库:多线程调试)
  • 启用Microsoft符号服务器(附加>选项>调试>符号>选中“Microsoft符号服务器”,并在下面的编辑控件中输入用于存储符号的目录)

我认为这个问题没有发生在STD::vector < /Cord>中,因为它只是头文件,所以代码直接链接到程序可执行文件中。对于C++流库,很多代码实际上都在VC运行时DLL中。

< P>它是动态链接到VC++运行时时缺少调试符号的问题。例如,在默认安装Visual Studio 2017之后,VC++运行时的调试符号不可用

可能的解决方案:

  • 静态链接到VC++运行时(项目属性>C/C++>代码生成>运行时库:多线程调试)
  • 启用Microsoft符号服务器(附加>选项>调试>符号>选中“Microsoft符号服务器”,并在下面的编辑控件中输入用于存储符号的目录)

我认为这个问题不是针对代码> STD::vector < /Cord>因为它只是头,所以代码直接链接到程序可执行文件。对于C++流库,很多代码实际上都在VC运行时DLL中。

这听起来更像是一个VisualStudio的bug报告,而不是一个正确的代码问题。hese打电话给“汽车”window.Yes,VS2017。@Tankor SO不仅适用于代码问题,也适用于。我还不确定这到底是一个bug还是一个配置问题。我想让一些人先确认一下。@AnT您使用的是哪个VS版本?Community、Pro、Enterprise?@zett42:Community。这听起来更像是Visual Studio的bug报告,而不是proper代码问题。我在“Autos”中获取所有这些调用的返回值window.Yes,VS2017。@Tankor SO不仅适用于代码问题,也适用于。我还不确定这到底是一个bug还是一个配置问题。我想让一些人先确认一下。@AnT您使用的是哪个VS版本?社区、专业、企业?@zett42:Community。很高兴知道这个问题已经解决,您可以把它作为答案。谢谢你的分享。@Jack我仍然需要等待14小时才能接受我自己的答案。很高兴知道这个问题已经解决,你可以将它标记为答案。谢谢你的分享。@Jack我仍然需要等待14小时才能接受我自己的答案。