2012-04-23 83 views
4

我正在尝试为字符串类型编写一个基于“autoexp.dat”的可视化工具。我已经缩减之后我的野心,试图写一个可视化工具,它包含一个空结尾的字符串领域一个非常简单的测试类型:如何编写非常简单的Visual Studio调试器可视化工具?

namespace thizz { namespace izz { 
     class MyType { 
      const char* _ptr; 
     public: 
      MyType(const char* ptr) : _ptr(ptr) {} 
     }; 
    } 
} 

这是我在Visualiser的刺,但它有没有影响如何Visual Studio中(2010年)显示该类型的实例:

thizz::izz::MyType 
{ 
preview ([$e._ptr,s]) 
} 

(那将会在[展示台]部分的顶部C:\ Program Files文件(x86)的\微软的Visual Studio 10.0 \ Common7 \ Packages \ Debugger \ autoexp.dat)。

看着这个类型的实例:

thizz::izz::MyType t("testing testing"); 

只是显示

t | {_ptr=0x0f56a6fc "testing testing" } | thizz::izz::MyType 
在监视窗口

+0

如果我从'可视化器定义'中删除所有空格,它似乎工作!即:* thizz :: izz :: MyType {preview([$ e._ptr,s])} * – mackenir 2012-04-23 17:26:41

+0

您应该添加该答案并将其标记为已解决,以便下一个出现此问题的人可以更轻松地看到它。 – Alex 2012-04-23 17:48:30

回答

1

为了得到一个更通用的浏览器尝试改变使用此:

thizz::izz::MyType { 
preview (#([$e._ptr,s])) 
stringview (#([$e._ptr,sb])) 
} 

这也将给放大镜图标将在你有一个较长的字符串的情况下打开一个更大的文本视图窗口。它还会让您选择以HTML或XML格式进行渲染。

注意,以及该文件是对空格敏感的格式,我也发现了,你不能在字符串中使用冒号,否则它将生成分析错误。

调试器可视化程序功能非常强大,虽然语法可能相当令人困惑。作为一般建议,我建议在[AutoExpand]部分首先创建一些条目,以总结您最感兴趣的数据类型,然后如果您有自定义容器,请复制并修改vectorlist等的示例,这会给您在您的时间投资的最大回报。

0

我不能给出为什么在autoexp.dat我原来的“编码”是行不通的一个明确的原因,但我发现,当被删除了所有空白相同的代码工作。

我又试图重新添加空格,发现保持在第一行的初始开括号是必要的,以保持工作的定义。

相关问题