我正在尝试为字符串类型编写一个基于'autoexp.dat'的可视化工具。我已经缩减了我的野心,试图为一个包含以null结尾的字符串字段的非常简单的测试类型编写可视化器:
namespace thizz { namespace izz {
class MyType {
const char* _ptr;
public:
MyType(const char* ptr) : _ptr(ptr) {}
};
}
}
这是我对可视化工具的尝试,但它对Visual Studio(2010)如何显示此类型的实例没有影响:
thizz::izz::MyType
{
preview ([$e._ptr,s])
}
(这是 C:\ Program Files(x86)\ Microsoft Visual Studio 10.0 \ Common7 \ Packages \ Debugger \ autoexp.dat 中[Visualizers]部分的顶部。
观看此类型的实例:
thizz::izz::MyType t("testing testing");
只显示
t | {_ptr=0x0f56a6fc "testing testing" } | thizz::izz::MyType
答案 0 :(得分:1)
要获得更多功能的查看器,请尝试更改以使用此功能:
thizz::izz::MyType {
preview ( #( [$e._ptr,s] ) )
stringview ( #( [$e._ptr,sb] ) )
}
这也将提供放大镜图标,如果你有一个更长的字符串,它将打开一个更大的文本视图窗口。它还为您提供了以HTML或XML格式呈现的选项。
请注意,除了对空格敏感的文件格式外,我还发现你不能在字符串中使用冒号,否则会产生解析错误。
调试器可视化器非常强大,但语法可能非常令人困惑。作为一般建议,我建议首先在[AutoExpand]
部分创建一些条目,以总结您最感兴趣的数据类型,然后如果您有自定义容器,则复制并调整vector
的示例, list
等,这将为您提供最大的投资回报。
答案 1 :(得分:0)
我无法明确说明为什么我在autoexp.dat中的原始“代码”无法正常工作,但我发现当删除所有空格时,相同的代码都有效。
然后我尝试重新添加空格,发现保持第一行的初始开括号是保持定义工作所必需的。