Visual C++ debugger visualizer?

淺唱寂寞╮ 提交于 2019-11-27 13:54:28

问题


How does Visual Studio show the elements of a vector, or the characters of a string, in C++? Is there a way for me to make it show my own classes in a custom way?


回答1:


http://msdn.microsoft.com/en-us/library/zf0e8s14(v=VS.100).aspx

For native code, you can add custom data type expansions to the file autoexp.dat, which is located in the Program Files\Microsoft Visual Studio 10.0\Common7\Packages\Debugger directory. Instructions on how to write autoexp rules are located in the file itself.

For this class:

template<class T>
struct  auto_array {
     T* data;
     int Len;
};

the autoexp.data might look like:

auto_array<*> {
    children
    (
        #array
        (
            expr :      $e.Data[$i],
            size :      $e.Len
        )
    )
    preview
    (
        #(
            "[", $e.Len , "](",
            #array
            (
                expr :  $e.Data[$i],
                size :  $e.Len
            ),
            ")"
        )
    )
}

KindDragon reports that Visual Studio 2012 uses a new file format: natvis




回答2:


You can add visualizers for custom C++ types to the autoexp.dat file. The format used in the file and the location change from version to version of Visual Studio but if you Google for autoexp.dat you should find some examples of how to customize it.




回答3:


For VS2017/2015, use Natvis visualizations to Create custom views of native objects in the Visual Studio debugger.



来源:https://stackoverflow.com/questions/7420842/visual-c-debugger-visualizer

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!