Visual Studio 2012/2013调试器可能的解决方法是不显示std :: string值

时间:2014-09-08 17:42:12

标签: c++ visual-studio visual-studio-2012 clr

我也在MSDN论坛上发布了这个:MSDN Forum Post

将/ clr选项与Visual Studio C ++项目一起使用时,std :: string和其他类型的调试可视化工具似乎不起作用。以下是步骤:

  • 启动VS2012或2013
  • 创建新的Visual C ++ / Win32控制台应用程序
  • 在主.CPP文件中,添加:#include <string>
  • 在主要方法中,添加:std::string s = "abc";
  • 调试程序并检查变量&#39;。注意它是如何显示字符串&#34; abc&#34;。这就是我们想要的。
  • 打开项目属性/常规。设置&#34;公共语言运行时支持&#34; =&#34;公共语言运行时支持(/ clr)&#34;
  • 调试程序并检查变量&#39;。现在字符串&#34; abc&#34;没有出现。

更多信息:

我可以在Visual Studio的autoexp.dat和stl.natvis文件中看到std :: basic_string的debug visualizer定义。但是,当使用/ clr时,它似乎忽略了这些。我确认其实际上忽略这些定义的一种方法是在其中加入额外的文本。当不使用/ clr时,VS会在预览中显示文本; / clr on,它没有。

还有其他类似的主题,例如:

但是,所有这些线程似乎都表明使用了autoexp.dat和/或natvis文件,并且可以对其进行修改。就我而言,我相信使用/ clr时会完全忽略这些文件。

有人知道解决方法吗?

0 个答案:

没有答案