在调试可视化工具中转换为 std::string (autoexp.dat)
Posted
技术标签:
【中文标题】在调试可视化工具中转换为 std::string (autoexp.dat)【英文标题】:Cast to std::string in debug visualizer (autoexp.dat) 【发布时间】:2014-08-11 10:30:59 【问题描述】:我有一个类将std::string*
存储在字段void* data
中,并希望VS2010 的调试器将字符串显示为预览(是的,我需要它是一个空指针)。
当我尝试访问 std::string 字段作为起点时,我已经失败了。以下似乎不起作用,Visual Studio 只显示指针data
。
preview (
#if ( $c.data != 0 ) (
(((std::basic_string<char>*)$c.data))->_Myres
) #else (
""
)
)
有什么方法可以做到这一点,或者在哪里可以找到 autoexp.dat 解析的详细错误信息?
【问题讨论】:
【参考方案1】:尝试替换
std::basic_string<char>
与
std::basic_string<char,std::char_traits<char>,std::allocator<char> >
它适用于我的情况。
如果你在源代码中写一个字符串变量为
std::string foo;
然后,您将在 Visual Studio 的本地窗口中看到如下所示:
name | value | type
foo | "" | std::basic_string<char,std::char_traits<char>,std::allocator<char> >
我猜调试器需要这种特定类型的强制转换表达式。
【讨论】:
以上是关于在调试可视化工具中转换为 std::string (autoexp.dat)的主要内容,如果未能解决你的问题,请参考以下文章
为啥在片段中从 char* 转换为 std::string 比转换为 const char* 更可取?