2010年06月19日 |本网站遵守CC版权协议 转载请注明出自www.thecodeway.com
VC在调试状态下,会以三种方式显示一个变量的内容,分别是preview, children和stringview,例如下图所示,定义一个std::string类型的变量,鼠标悬停后显示的内容就是preview,children是点击”+”符号后显示的内容,而对于含有字符串内容的变量,点击上放大镜符号,会弹出单独的窗口内显示其中的字符串内容。
针对这部分功能,微软提供给开发者一个自定义接口,就是通过修改autoexp.dat这个看起来其貌不扬的小文件,该文件放在“$(VSINSTALLDIR)\Common7\Packages\Debugger”目录下,微软并没有提供关于这个文件的说明文档,只是在这个文件开始的地方有一些简单的说明,好在这个文件的结构并不复杂,通过分析现成的例子,大概也能了解个八九不离十。
先以一个例子说明如何使用这个文件,打开这个文件,在”[Visualizer]“这一行下面添加下面的内容
MyClass
{
preview
(
#
(
"
Hello,World!
"
)
)
}
然后启动VC, 随便定义一个名字为MyClass的类,当使用VC的调试器查看这个类的内容时,你会发现显示的调试内容已经变成了”Hello,World!”
下面我们再来看一个稍微复杂的例子,比如一个自定义的数组类
struct
MyClass
{
int
size
[
32
]
;
int
*
buf
;
}
;
调试这个数据结构的时候,我们想显示这个数组的元素个数,每个元素的值,以及每个元素的奇偶性,那么需要这样定义:
MyClass
{
preview
(
#
(
"
[count is
"
, $
c
.
size
,
"
]
"
,
"
(buf
"
,
#array
(
expr
: $
c
.
buf
[
$
i
]
,
size
: $
c
.
size
)
: $
e
,
"
)
"
,
"
(odd
"
,
#array
(
expr
: $
c
.
buf
[
$
i
]
,
size
: $
c
.
size
)
: $
e
&
1
,
"
)
"
)
)
}
实际显示效果为:
其中,$c表示当前所定义数据结构,#array表示用数组形式显示内容,$i表示数组中的每个元素的索引,$e表示每个元素的值,同样,可以用#tree和#list分别用来显示树形数据结构和链表类型的数据结构。
autoexp.dat中已经对VC提供的缺省的STL数据结构做了定义,比如vector,map等,通过分析这些定义,还可以挖出很多有趣的功能,比如用#if/#else/#switch/#case等条件判断功能,在处理一些比较复杂的组合类型的数据结构时,就非常有用。
下面是一份我制作的,针对另一份较为常用的STL库STLPORT 中部分数据结构的定义,适应STLPORT 5.2版本,使用方法是将其中的内容拷贝到autoexp.dat的”[Visualizer]“段中,大家有兴趣的话可以拿去使用,如果发现错误或者有补充的话,请通知我。
2010年06月19日
|本网站遵守CC版权协议 转载请注明出自www.thecodeway.com
VC在调试状态下,会以三种方式显示一个变量的内容,分别是preview, children和stringview,例如下图所示,定义一个std::string类型的变量,鼠标悬停后显示的内容就是preview,children是点击”+”符号后显示的内容,而对于含有字符串内容的变量,点击上放大镜符号,会弹出单独的窗口内显示其中的字符串内容。
针对这部分功能,微软提供给开发者一个自定义接口,就是通过修改autoexp.dat这个看起来其貌不扬的小文件,该文件放在“$(VSINSTALLDIR)\Common7\Packages\Debugger”目录下,微软并没有提供关于这个文件的说明文档,只是在这个文件开始的地方有一些简单的说明,好在这个文件的结构并不复杂,通过分析现成的例子,大概也能了解个八九不离十。
先以一个例子说明如何使用这个文件,打开这个文件,在”[Visualizer]“这一行下面添加下面的内容
MyClass
{
preview
(
#
(
"
Hello,World!
"
)
)
}
然后启动VC, 随便定义一个名字为MyClass的类,当使用VC的调试器查看这个类的内容时,你会发现显示的调试内容已经变成了”Hello,World!”
下面我们再来看一个稍微复杂的例子,比如一个自定义的数组类
struct
MyClass
{
int
size
[
32
]
;
int
*
buf
;
}
;
调试这个数据结构的时候,我们想显示这个数组的元素个数,每个元素的值,以及每个元素的奇偶性,那么需要这样定义:
MyClass
{
preview
(
#
(
"
[count is
"
, $
c
.
size
,
"
]
"
,
"
(buf
"
,
#array
(
expr
: $
c
.
buf
[
$
i
]
,
size
: $
c
.
size
)
: $
e
,
"
)
"
,
"
(odd
"
,
#array
(
expr
: $
c
.
buf
[
$
i
]
,
size
: $
c
.
size
)
: $
e
&
1
,
"
)
"
)
)
}
实际显示效果为:
其中,$c表示当前所定义数据结构,#array表示用数组形式显示内容,$i表示数组中的每个元素的索引,$e表示每个元素的值,同样,可以用#tree和#list分别用来显示树形数据结构和链表类型的数据结构。
autoexp.dat中已经对VC提供的缺省的STL数据结构做了定义,比如vector,map等,通过分析这些定义,还可以挖出很多有趣的功能,比如用#if/#else/#switch/#case等条件判断功能,在处理一些比较复杂的组合类型的数据结构时,就非常有用。
下面是一份我制作的,针对另一份较为常用的STL库STLPORT 中部分数据结构的定义,适应STLPORT 5.2版本,使用方法是将其中的内容拷贝到autoexp.dat的”[Visualizer]“段中,大家有兴趣的话可以拿去使用,如果发现错误或者有补充的话,请通知我。
2010年06月19日
|本网站遵守CC版权协议 转载请注明出自www.thecodeway.com
VC在调试状态下,会以三种方式显示一个变量的内容,分别是preview, children和stringview,例如下图所示,定义一个std::string类型的变量,鼠标悬停后显示的内容就是preview,children是点击”+”符号后显示的内容,而对于含有字符串内容的变量,点击上放大镜符号,会弹出单独的窗口内显示其中的字符串内容。
针对这部分功能,微软提供给开发者一个自定义接口,就是通过修改autoexp.dat这个看起来其貌不扬的小文件,该文件放在“$(VSINSTALLDIR)\Common7\Packages\Debugger”目录下,微软并没有提供关于这个文件的说明文档,只是在这个文件开始的地方有一些简单的说明,好在这个文件的结构并不复杂,通过分析现成的例子,大概也能了解个八九不离十。
先以一个例子说明如何使用这个文件,打开这个文件,在”[Visualizer]“这一行下面添加下面的内容
MyClass
{
preview
(
#
(
"
Hello,World!
"
)
)
}
然后启动VC, 随便定义一个名字为MyClass的类,当使用VC的调试器查看这个类的内容时,你会发现显示的调试内容已经变成了”Hello,World!”
下面我们再来看一个稍微复杂的例子,比如一个自定义的数组类
struct
MyClass
{
int
size
[
32
]
;
int
*
buf
;
}
;
调试这个数据结构的时候,我们想显示这个数组的元素个数,每个元素的值,以及每个元素的奇偶性,那么需要这样定义:
MyClass
{
preview
(
#
(
"
[count is
"
, $
c
.
size
,
"
]
"
,
"
(buf
"
,
#array
(
expr
: $
c
.
buf
[
$
i
]
,
size
: $
c
.
size
)
: $
e
,
"
)
"
,
"
(odd
"
,
#array
(
expr
: $
c
.
buf
[
$
i
]
,
size
: $
c
.
size
)
: $
e
&
1
,
"
)
"
)
)
}
实际显示效果为:
其中,$c表示当前所定义数据结构,#array表示用数组形式显示内容,$i表示数组中的每个元素的索引,$e表示每个元素的值,同样,可以用#tree和#list分别用来显示树形数据结构和链表类型的数据结构。
autoexp.dat中已经对VC提供的缺省的STL数据结构做了定义,比如vector,map等,通过分析这些定义,还可以挖出很多有趣的功能,比如用#if/#else/#switch/#case等条件判断功能,在处理一些比较复杂的组合类型的数据结构时,就非常有用。
下面是一份我制作的,针对另一份较为常用的STL库STLPORT 中部分数据结构的定义,适应STLPORT 5.2版本,使用方法是将其中的内容拷贝到autoexp.dat的”[Visualizer]“段中,大家有兴趣的话可以拿去使用,如果发现错误或者有补充的话,请通知我。
2010年06月19日
|本网站遵守CC版权协议 转载请注明出自www.thecodeway.com
VC在调试状态下,会以三种方式显示一个变量的内容,分别是preview, children和stringview,例如下图所示,定义一个std::string类型的变量,鼠标悬停后显示的内容就是preview,children是点击”+”符号后显示的内容,而对于含有字符串内容的变量,点击上放大镜符号,会弹出单独的窗口内显示其中的字符串内容。
针对这部分功能,微软提供给开发者一个自定义接口,就是通过修改autoexp.dat这个看起来其貌不扬的小文件,该文件放在“$(VSINSTALLDIR)\Common7\Packages\Debugger”目录下,微软并没有提供关于这个文件的说明文档,只是在这个文件开始的地方有一些简单的说明,好在这个文件的结构并不复杂,通过分析现成的例子,大概也能了解个八九不离十。
先以一个例子说明如何使用这个文件,打开这个文件,在”[Visualizer]“这一行下面添加下面的内容
MyClass
{
preview
(
#
(
"
Hello,World!
"
)
)
}
然后启动VC, 随便定义一个名字为MyClass的类,当使用VC的调试器查看这个类的内容时,你会发现显示的调试内容已经变成了”Hello,World!”
下面我们再来看一个稍微复杂的例子,比如一个自定义的数组类
struct
MyClass
{
int
size
[
32
]
;
int
*
buf
;
}
;
调试这个数据结构的时候,我们想显示这个数组的元素个数,每个元素的值,以及每个元素的奇偶性,那么需要这样定义:
MyClass
{
preview
(
#
(
"
[count is
"
, $
c
.
size
,
"
]
"
,
"
(buf
"
,
#array
(
expr
: $
c
.
buf
[
$
i
]
,
size
: $
c
.
size
)
: $
e
,
"
)
"
,
"
(odd
"
,
#array
(
expr
: $
c
.
buf
[
$
i
]
,
size
: $
c
.
size
)
: $
e
&
1
,
"
)
"
)
)
}
实际显示效果为:
其中,$c表示当前所定义数据结构,#array表示用数组形式显示内容,$i表示数组中的每个元素的索引,$e表示每个元素的值,同样,可以用#tree和#list分别用来显示树形数据结构和链表类型的数据结构。
autoexp.dat中已经对VC提供的缺省的STL数据结构做了定义,比如vector,map等,通过分析这些定义,还可以挖出很多有趣的功能,比如用#if/#else/#switch/#case等条件判断功能,在处理一些比较复杂的组合类型的数据结构时,就非常有用。
下面是一份我制作的,针对另一份较为常用的STL库STLPORT 中部分数据结构的定义,适应STLPORT 5.2版本,使用方法是将其中的内容拷贝到autoexp.dat的”[Visualizer]“段中,大家有兴趣的话可以拿去使用,如果发现错误或者有补充的话,请通知我。
2010年06月19日
|本网站遵守CC版权协议 转载请注明出自www.thecodeway.com
VC在调试状态下,会以三种方式显示一个变量的内容,分别是preview, children和stringview,例如下图所示,定义一个std::string类型的变量,鼠标悬停后显示的内容就是preview,children是点击”+”符号后显示的内容,而对于含有字符串内容的变量,点击上放大镜符号,会弹出单独的窗口内显示其中的字符串内容。
针对这部分功能,微软提供给开发者一个自定义接口,就是通过修改autoexp.dat这个看起来其貌不扬的小文件,该文件放在“$(VSINSTALLDIR)\Common7\Packages\Debugger”目录下,微软并没有提供关于这个文件的说明文档,只是在这个文件开始的地方有一些简单的说明,好在这个文件的结构并不复杂,通过分析现成的例子,大概也能了解个八九不离十。
先以一个例子说明如何使用这个文件,打开这个文件,在”[Visualizer]“这一行下面添加下面的内容
MyClass
{
preview
(
#
(
"
Hello,World!
"
)
)
}
然后启动VC, 随便定义一个名字为MyClass的类,当使用VC的调试器查看这个类的内容时,你会发现显示的调试内容已经变成了”Hello,World!”
下面我们再来看一个稍微复杂的例子,比如一个自定义的数组类
struct
MyClass
{
int
size
[
32
]
;
int
*
buf
;
}
;
调试这个数据结构的时候,我们想显示这个数组的元素个数,每个元素的值,以及每个元素的奇偶性,那么需要这样定义:
MyClass
{
preview
(
#
(
"
[count is
"
, $
c
.
size
,
"
]
"
,
"
(buf
"
,
#array
(
expr
: $
c
.
buf
[
$
i
]
,
size
: $
c
.
size
)
: $
e
,
"
)
"
,
"
(odd
"
,
#array
(
expr
: $
c
.
buf
[
$
i
]
,
size
: $
c
.
size
)
: $
e
&
1
,
"
)
"
)
)
}
实际显示效果为:
其中,$c表示当前所定义数据结构,#array表示用数组形式显示内容,$i表示数组中的每个元素的索引,$e表示每个元素的值,同样,可以用#tree和#list分别用来显示树形数据结构和链表类型的数据结构。
autoexp.dat中已经对VC提供的缺省的STL数据结构做了定义,比如vector,map等,通过分析这些定义,还可以挖出很多有趣的功能,比如用#if/#else/#switch/#case等条件判断功能,在处理一些比较复杂的组合类型的数据结构时,就非常有用。
下面是一份我制作的,针对另一份较为常用的STL库STLPORT 中部分数据结构的定义,适应STLPORT 5.2版本,使用方法是将其中的内容拷贝到autoexp.dat的”[Visualizer]“段中,大家有兴趣的话可以拿去使用,如果发现错误或者有补充的话,请通知我。
2010年06月19日
|本网站遵守CC版权协议 转载请注明出自www.thecodeway.com
VC在调试状态下,会以三种方式显示一个变量的内容,分别是preview, children和stringview,例如下图所示,定义一个std::string类型的变量,鼠标悬停后显示的内容就是preview,children是点击”+”符号后显示的内容,而对于含有字符串内容的变量,点击上放大镜符号,会弹出单独的窗口内显示其中的字符串内容。
针对这部分功能,微软提供给开发者一个自定义接口,就是通过修改autoexp.dat这个看起来其貌不扬的小文件,该文件放在“$(VSINSTALLDIR)\Common7\Packages\Debugger”目录下,微软并没有提供关于这个文件的说明文档,只是在这个文件开始的地方有一些简单的说明,好在这个文件的结构并不复杂,通过分析现成的例子,大概也能了解个八九不离十。
先以一个例子说明如何使用这个文件,打开这个文件,在”[Visualizer]“这一行下面添加下面的内容
MyClass
{
preview
(
#
(
"
Hello,World!
"
)
)
}
然后启动VC, 随便定义一个名字为MyClass的类,当使用VC的调试器查看这个类的内容时,你会发现显示的调试内容已经变成了”Hello,World!”
下面我们再来看一个稍微复杂的例子,比如一个自定义的数组类
struct
MyClass
{
int
size
[
32
]
;
int
*
buf
;
}
;
调试这个数据结构的时候,我们想显示这个数组的元素个数,每个元素的值,以及每个元素的奇偶性,那么需要这样定义:
MyClass
{
preview
(
#
(
"
[count is
"
, $
c
.
size
,
"
]
"
,
"
(buf
"
,
#array
(
expr
: $
c
.
buf
[
$
i
]
,
size
: $
c
.
size
)
: $
e
,
"
)
"
,
"
(odd
"
,
#array
(
expr
: $
c
.
buf
[
$
i
]
,
size
: $
c
.
size
)
: $
e
&
1
,
"
)
"
)
)
}
实际显示效果为:
其中,$c表示当前所定义数据结构,#array表示用数组形式显示内容,$i表示数组中的每个元素的索引,$e表示每个元素的值,同样,可以用#tree和#list分别用来显示树形数据结构和链表类型的数据结构。
autoexp.dat中已经对VC提供的缺省的STL数据结构做了定义,比如vector,map等,通过分析这些定义,还可以挖出很多有趣的功能,比如用#if/#else/#switch/#case等条件判断功能,在处理一些比较复杂的组合类型的数据结构时,就非常有用。
下面是一份我制作的,针对另一份较为常用的STL库STLPORT 中部分数据结构的定义,适应STLPORT 5.2版本,使用方法是将其中的内容拷贝到autoexp.dat的”[Visualizer]“段中,大家有兴趣的话可以拿去使用,如果发现错误或者有补充的话,请通知我。
2010年06月19日
|本网站遵守CC版权协议 转载请注明出自www.thecodeway.com
VC在调试状态下,会以三种方式显示一个变量的内容,分别是preview, children和stringview,例如下图所示,定义一个std::string类型的变量,鼠标悬停后显示的内容就是preview,children是点击”+”符号后显示的内容,而对于含有字符串内容的变量,点击上放大镜符号,会弹出单独的窗口内显示其中的字符串内容。
针对这部分功能,微软提供给开发者一个自定义接口,就是通过修改autoexp.dat这个看起来其貌不扬的小文件,该文件放在“$(VSINSTALLDIR)\Common7\Packages\Debugger”目录下,微软并没有提供关于这个文件的说明文档,只是在这个文件开始的地方有一些简单的说明,好在这个文件的结构并不复杂,通过分析现成的例子,大概也能了解个八九不离十。
先以一个例子说明如何使用这个文件,打开这个文件,在”[Visualizer]“这一行下面添加下面的内容
MyClass
{
preview
(
#
(
"
Hello,World!
"
)
)
}
然后启动VC, 随便定义一个名字为MyClass的类,当使用VC的调试器查看这个类的内容时,你会发现显示的调试内容已经变成了”Hello,World!”
下面我们再来看一个稍微复杂的例子,比如一个自定义的数组类
struct
MyClass
{
int
size
[
32
]
;
int
*
buf
;
}
;
调试这个数据结构的时候,我们想显示这个数组的元素个数,每个元素的值,以及每个元素的奇偶性,那么需要这样定义:
MyClass
{
preview
(
#
(
"
[count is
"
, $
c
.
size
,
"
]
"
,
"
(buf
"
,
#array
(
expr
: $
c
.
buf
[
$
i
]
,
size
: $
c
.
size
)
: $
e
,
"
)
"
,
"
(odd
"
,
#array
(
expr
: $
c
.
buf
[
$
i
]
,
size
: $
c
.
size
)
: $
e
&
1
,
"
)
"
)
)
}
实际显示效果为:
其中,$c表示当前所定义数据结构,#array表示用数组形式显示内容,$i表示数组中的每个元素的索引,$e表示每个元素的值,同样,可以用#tree和#list分别用来显示树形数据结构和链表类型的数据结构。
autoexp.dat中已经对VC提供的缺省的STL数据结构做了定义,比如vector,map等,通过分析这些定义,还可以挖出很多有趣的功能,比如用#if/#else/#switch/#case等条件判断功能,在处理一些比较复杂的组合类型的数据结构时,就非常有用。
下面是一份我制作的,针对另一份较为常用的STL库STLPORT 中部分数据结构的定义,适应STLPORT 5.2版本,使用方法是将其中的内容拷贝到autoexp.dat的”[Visualizer]“段中,大家有兴趣的话可以拿去使用,如果发现错误或者有补充的话,请通知我。
2010年06月19日
|本网站遵守CC版权协议 转载请注明出自www.thecodeway.com
VC在调试状态下,会以三种方式显示一个变量的内容,分别是preview, children和stringview,例如下图所示,定义一个std::string类型的变量,鼠标悬停后显示的内容就是preview,children是点击”+”符号后显示的内容,而对于含有字符串内容的变量,点击上放大镜符号,会弹出单独的窗口内显示其中的字符串内容。
针对这部分功能,微软提供给开发者一个自定义接口,就是通过修改autoexp.dat这个看起来其貌不扬的小文件,该文件放在“$(VSINSTALLDIR)\Common7\Packages\Debugger”目录下,微软并没有提供关于这个文件的说明文档,只是在这个文件开始的地方有一些简单的说明,好在这个文件的结构并不复杂,通过分析现成的例子,大概也能了解个八九不离十。
先以一个例子说明如何使用这个文件,打开这个文件,在”[Visualizer]“这一行下面添加下面的内容
MyClass
{
preview
(
#
(
"
Hello,World!
"
)
)
}
然后启动VC, 随便定义一个名字为MyClass的类,当使用VC的调试器查看这个类的内容时,你会发现显示的调试内容已经变成了”Hello,World!”
下面我们再来看一个稍微复杂的例子,比如一个自定义的数组类
struct
MyClass
{
int
size
[
32
]
;
int
*
buf
;
}
;
调试这个数据结构的时候,我们想显示这个数组的元素个数,每个元素的值,以及每个元素的奇偶性,那么需要这样定义:
MyClass
{
preview
(
#
(
"
[count is
"
, $
c
.
size
,
"
]
"
,
"
(buf
"
,
#array
(
expr
: $
c
.
buf
[
$
i
]
,
size
: $
c
.
size
)
: $
e
,
"
)
"
,
"
(odd
"
,
#array
(
expr
: $
c
.
buf
[
$
i
]
,
size
: $
c
.
size
)
: $
e
&
1
,
"
)
"
)
)
}
实际显示效果为:
其中,$c表示当前所定义数据结构,#array表示用数组形式显示内容,$i表示数组中的每个元素的索引,$e表示每个元素的值,同样,可以用#tree和#list分别用来显示树形数据结构和链表类型的数据结构。
autoexp.dat中已经对VC提供的缺省的STL数据结构做了定义,比如vector,map等,通过分析这些定义,还可以挖出很多有趣的功能,比如用#if/#else/#switch/#case等条件判断功能,在处理一些比较复杂的组合类型的数据结构时,就非常有用。
下面是一份我制作的,针对另一份较为常用的STL库STLPORT 中部分数据结构的定义,适应STLPORT 5.2版本,使用方法是将其中的内容拷贝到autoexp.dat的”[Visualizer]“段中,大家有兴趣的话可以拿去使用,如果发现错误或者有补充的话,请通知我。
2010年06月19日
|本网站遵守CC版权协议 转载请注明出自www.thecodeway.com
VC在调试状态下,会以三种方式显示一个变量的内容,分别是preview, children和stringview,例如下图所示,定义一个std::string类型的变量,鼠标悬停后显示的内容就是preview,children是点击”+”符号后显示的内容,而对于含有字符串内容的变量,点击上放大镜符号,会弹出单独的窗口内显示其中的字符串内容。
针对这部分功能,微软提供给开发者一个自定义接口,就是通过修改autoexp.dat这个看起来其貌不扬的小文件,该文件放在“$(VSINSTALLDIR)\Common7\Packages\Debugger”目录下,微软并没有提供关于这个文件的说明文档,只是在这个文件开始的地方有一些简单的说明,好在这个文件的结构并不复杂,通过分析现成的例子,大概也能了解个八九不离十。
先以一个例子说明如何使用这个文件,打开这个文件,在”[Visualizer]“这一行下面添加下面的内容
MyClass
{
preview
(
#
(
"
Hello,World!
"
)
)
}
然后启动VC, 随便定义一个名字为MyClass的类,当使用VC的调试器查看这个类的内容时,你会发现显示的调试内容已经变成了”Hello,World!”
下面我们再来看一个稍微复杂的例子,比如一个自定义的数组类
struct
MyClass
{
int
size
[
32
]
;
int
*
buf
;
}
;
调试这个数据结构的时候,我们想显示这个数组的元素个数,每个元素的值,以及每个元素的奇偶性,那么需要这样定义:
MyClass
{
preview
(
#
(
"
[count is
"
, $
c
.
size
,
"
]
"
,
"
(buf
"
,
#array
(
expr
: $
c
.
buf
[
$
i
]
,
size
: $
c
.
size
)
: $
e
,
"
)
"
,
"
(odd
"
,
#array
(
expr
: $
c
.
buf
[
$
i
]
,
size
: $
c
.
size
)
: $
e
&
1
,
"
)
"
)
)
}
实际显示效果为:
其中,$c表示当前所定义数据结构,#array表示用数组形式显示内容,$i表示数组中的每个元素的索引,$e表示每个元素的值,同样,可以用#tree和#list分别用来显示树形数据结构和链表类型的数据结构。
autoexp.dat中已经对VC提供的缺省的STL数据结构做了定义,比如vector,map等,通过分析这些定义,还可以挖出很多有趣的功能,比如用#if/#else/#switch/#case等条件判断功能,在处理一些比较复杂的组合类型的数据结构时,就非常有用。
下面是一份我制作的,针对另一份较为常用的STL库STLPORT 中部分数据结构的定义,适应STLPORT 5.2版本,使用方法是将其中的内容拷贝到autoexp.dat的”[Visualizer]“段中,大家有兴趣的话可以拿去使用,如果发现错误或者有补充的话,请通知我。
2010年06月19日
|本网站遵守CC版权协议 转载请注明出自www.thecodeway.com
VC在调试状态下,会以三种方式显示一个变量的内容,分别是preview, children和stringview,例如下图所示,定义一个std::string类型的变量,鼠标悬停后显示的内容就是preview,children是点击”+”符号后显示的内容,而对于含有字符串内容的变量,点击上放大镜符号,会弹出单独的窗口内显示其中的字符串内容。
针对这部分功能,微软提供给开发者一个自定义接口,就是通过修改autoexp.dat这个看起来其貌不扬的小文件,该文件放在“$(VSINSTALLDIR)\Common7\Packages\Debugger”目录下,微软并没有提供关于这个文件的说明文档,只是在这个文件开始的地方有一些简单的说明,好在这个文件的结构并不复杂,通过分析现成的例子,大概也能了解个八九不离十。
先以一个例子说明如何使用这个文件,打开这个文件,在”[Visualizer]“这一行下面添加下面的内容
MyClass
{
preview
(
#
(
"
Hello,World!
"
)
)
}
然后启动VC, 随便定义一个名字为MyClass的类,当使用VC的调试器查看这个类的内容时,你会发现显示的调试内容已经变成了”Hello,World!”
下面我们再来看一个稍微复杂的例子,比如一个自定义的数组类
struct
MyClass
{
int
size
[
32
]
;
int
*
buf
;
}
;
调试这个数据结构的时候,我们想显示这个数组的元素个数,每个元素的值,以及每个元素的奇偶性,那么需要这样定义:
MyClass
{
preview
(
#
(
"
[count is
"
, $
c
.
size
,
"
]
"
,
"
(buf
"
,
#array
(
expr
: $
c
.
buf
[
$
i
]
,
size
: $
c
.
size
)
: $
e
,
"
)
"
,
"
(odd
"
,
#array
(
expr
: $
c
.
buf
[
$
i
]
,
size
: $
c
.
size
)
: $
e
&
1
,
"
)
"
)
)
}
实际显示效果为:
其中,$c表示当前所定义数据结构,#array表示用数组形式显示内容,$i表示数组中的每个元素的索引,$e表示每个元素的值,同样,可以用#tree和#list分别用来显示树形数据结构和链表类型的数据结构。
autoexp.dat中已经对VC提供的缺省的STL数据结构做了定义,比如vector,map等,通过分析这些定义,还可以挖出很多有趣的功能,比如用#if/#else/#switch/#case等条件判断功能,在处理一些比较复杂的组合类型的数据结构时,就非常有用。
下面是一份我制作的,针对另一份较为常用的STL库STLPORT 中部分数据结构的定义,适应STLPORT 5.2版本,使用方法是将其中的内容拷贝到autoexp.dat的”[Visualizer]“段中,大家有兴趣的话可以拿去使用,如果发现错误或者有补充的话,请通知我。
2010年06月19日
|本网站遵守CC版权协议 转载请注明出自www.thecodeway.com
VC在调试状态下,会以三种方式显示一个变量的内容,分别是preview, children和stringview,例如下图所示,定义一个std::string类型的变量,鼠标悬停后显示的内容就是preview,children是点击”+”符号后显示的内容,而对于含有字符串内容的变量,点击上放大镜符号,会弹出单独的窗口内显示其中的字符串内容。
针对这部分功能,微软提供给开发者一个自定义接口,就是通过修改autoexp.dat这个看起来其貌不扬的小文件,该文件放在“$(VSINSTALLDIR)\Common7\Packages\Debugger”目录下,微软并没有提供关于这个文件的说明文档,只是在这个文件开始的地方有一些简单的说明,好在这个文件的结构并不复杂,通过分析现成的例子,大概也能了解个八九不离十。
先以一个例子说明如何使用这个文件,打开这个文件,在”[Visualizer]“这一行下面添加下面的内容
MyClass
{
preview
(
#
(
"
Hello,World!
"
)
)
}
然后启动VC, 随便定义一个名字为MyClass的类,当使用VC的调试器查看这个类的内容时,你会发现显示的调试内容已经变成了”Hello,World!”
下面我们再来看一个稍微复杂的例子,比如一个自定义的数组类
struct
MyClass
{
int
size
[
32
]
;
int
*
buf
;
}
;
调试这个数据结构的时候,我们想显示这个数组的元素个数,每个元素的值,以及每个元素的奇偶性,那么需要这样定义:
MyClass
{
preview
(
#
(
"
[count is
"
, $
c
.
size
,
"
]
"
,
"
(buf
"
,
#array
(
expr
: $
c
.
buf
[
$
i
]
,
size
: $
c
.
size
)
: $
e
,
"
)
"
,
"
(odd
"
,
#array
(
expr
: $
c
.
buf
[
$
i
]
,
size
: $
c
.
size
)
: $
e
&
1
,
"
)
"
)
)
}
实际显示效果为:
其中,$c表示当前所定义数据结构,#array表示用数组形式显示内容,$i表示数组中的每个元素的索引,$e表示每个元素的值,同样,可以用#tree和#list分别用来显示树形数据结构和链表类型的数据结构。
autoexp.dat中已经对VC提供的缺省的STL数据结构做了定义,比如vector,map等,通过分析这些定义,还可以挖出很多有趣的功能,比如用#if/#else/#switch/#case等条件判断功能,在处理一些比较复杂的组合类型的数据结构时,就非常有用。
下面是一份我制作的,针对另一份较为常用的STL库STLPORT 中部分数据结构的定义,适应STLPORT 5.2版本,使用方法是将其中的内容拷贝到autoexp.dat的”[Visualizer]“段中,大家有兴趣的话可以拿去使用,如果发现错误或者有补充的话,请通知我。
2010年06月19日
|本网站遵守CC版权协议 转载请注明出自www.thecodeway.com
VC在调试状态下,会以三种方式显示一个变量的内容,分别是preview, children和stringview,例如下图所示,定义一个std::string类型的变量,鼠标悬停后显示的内容就是preview,children是点击”+”符号后显示的内容,而对于含有字符串内容的变量,点击上放大镜符号,会弹出单独的窗口内显示其中的字符串内容。
针对这部分功能,微软提供给开发者一个自定义接口,就是通过修改autoexp.dat这个看起来其貌不扬的小文件,该文件放在“$(VSINSTALLDIR)\Common7\Packages\Debugger”目录下,微软并没有提供关于这个文件的说明文档,只是在这个文件开始的地方有一些简单的说明,好在这个文件的结构并不复杂,通过分析现成的例子,大概也能了解个八九不离十。
先以一个例子说明如何使用这个文件,打开这个文件,在”[Visualizer]“这一行下面添加下面的内容
MyClass
{
preview
(
#
(
"
Hello,World!
"
)
)
}
然后启动VC, 随便定义一个名字为MyClass的类,当使用VC的调试器查看这个类的内容时,你会发现显示的调试内容已经变成了”Hello,World!”
下面我们再来看一个稍微复杂的例子,比如一个自定义的数组类
struct
MyClass
{
int
size
[
32
]
;
int
*
buf
;
}
;
调试这个数据结构的时候,我们想显示这个数组的元素个数,每个元素的值,以及每个元素的奇偶性,那么需要这样定义:
MyClass
{
preview
(
#
(
"
[count is
"
, $
c
.
size
,
"
]
"
,
"
(buf
"
,
#array
(
expr
: $
c
.
buf
[
$
i
]
,
size
: $
c
.
size
)
: $
e
,
"
)
"
,
"
(odd
"
,
#array
(
expr
: $
c
.
buf
[
$
i
]
,
size
: $
c
.
size
)
: $
e
&
1
,
"
)
"
)
)
}
实际显示效果为:
其中,$c表示当前所定义数据结构,#array表示用数组形式显示内容,$i表示数组中的每个元素的索引,$e表示每个元素的值,同样,可以用#tree和#list分别用来显示树形数据结构和链表类型的数据结构。
autoexp.dat中已经对VC提供的缺省的STL数据结构做了定义,比如vector,map等,通过分析这些定义,还可以挖出很多有趣的功能,比如用#if/#else/#switch/#case等条件判断功能,在处理一些比较复杂的组合类型的数据结构时,就非常有用。
下面是一份我制作的,针对另一份较为常用的STL库STLPORT 中部分数据结构的定义,适应STLPORT 5.2版本,使用方法是将其中的内容拷贝到autoexp.dat的”[Visualizer]“段中,大家有兴趣的话可以拿去使用,如果发现错误或者有补充的话,请通知我。