在调试可视化工具(autoexp.dat)中转换为std :: string

时间:2014-08-11 10:31:00

标签: c++ visual-studio-2010 visual-studio debuggervisualizer

我有一个在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 个答案:

答案 0 :(得分:0)

尝试替换

std::basic_string<char>

std::basic_string<char,std::char_traits<char>,std::allocator<char> >

它适用于我的情况。

如果您在源代码中将字符串变量写为

std::string foo;

然后,您将在Visual Studio的locals窗口中看到如下:

name | value | type
foo  | ""    | std::basic_string<char,std::char_traits<char>,std::allocator<char> >

我猜调试器需要这种特定类型用于强制转换表达式。