在MS DEBUGGER中显示自定义数组内容(Show Custom Object In MS Debugger)

MS DEBUGGER中可以显示标准C++类型信息,如vector等,对于自己定义的数组也是很容易实现的,只需要修改VS目录下COMM7\Packages\Debugger中的autoexp.dat 即可。

例如,我的数组:

代码
 1 template<typename T,typename SizeType=unsigned>
 2 class Array
 3 {
 4 public:
 5     ///ctor 
 6     ///...
 7 
 8     ///dtor
 9     ///...
10 
11     inline T& operator[](SizeType &i){return mdata[i];}
12     inline const T& operator[]const(SizeType &i){return mdata[i];}
13 
14     ///other codes
15     ///...
16 
17 private:
18     T* mdata;
19     SizeType msize;
20 };

打开autoexp.dat,定位到文件末尾,在倒数第二行([hresult])之前插入以下内容即可:

;------------------------------------------------------------------------------
;  Array
;------------------------------------------------------------------------------
Array<*>{
    preview (
        ; An actual array is previewed with its address.
        ; array<T, N> is previewed like vector<T>.
        #(
            "[",
            $e.msize,
            "](",
            #array(expr: $e.mdata[$i], size: $e.msize),
            ")"
        )
    )

    children (
        ; Just like an actual array.
        #array(expr: $e.mdata[$i], size: $e.msize)
    )
}

运行调试,自定义数组也可以像vector那样显示出内容了,呵呵是不是很爽啊。

该方法在VC++ 2008 Express Edition + WIN7 64bit下通过测试

posted on 2010-03-25 10:47  codezhang  阅读(228)  评论(0编辑  收藏  举报

导航