我有一种奇怪的感觉,就像这是最近出现的问题,并且发生在两台不同的计算机上。
当我调试并尝试查看 STL 中的 std::string 的值时,它显示为值。它说它的大小是15,容量是一些乱码的巨大数字。
数组值本身都显示 CXX0030:错误:无法计算表达式。
这是非常令人沮丧的,如果我在字符串上调用 c_str 并将其分配给 char * 或使用监视表达式(如果需要),我仍然可以在调试时访问字符串值,但这非常乏味,并且在调试复杂问题时使生活变得非常困难连续3天。
其他 STL 容器的内容显示得很好。
这种情况发生在两台不同计算机上的多个项目上,我很确定我已经为该项目设置了所有调试选项。没有优化,并且肯定会生成调试信息。
遇到了同样的问题,并通过更改 autoexp.dat 中的可视化工具来修复它。它在这里找到:
“C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\Packages\Debugger\autoexp.dat”或类似的位置,具体取决于您的 Visual Studio 和 Windows 版本。
“std::basic_string”的更改:
替换 $e._BUF_SIZE
经过
sizeof($e._Bx._Buf)/sizeof(char)
或者
sizeof($e._Bx._Buf)/sizeof(wchar_t)
https://connect.microsoft.com/VisualStudio/feedback/details/677683/std-string-in Correctly-displayed-in-debugger https://connect.microsoft.com/VisualStudio/feedback/details/677683/std-string-incorrectly-displayed-in-debugger
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)