代码之家  ›  专栏  ›  技术社区  ›  TCSGrad

如何在调试时查看VisualC++.NET(Visual Studio 2003)中的STD::

  •  3
  • TCSGrad  · 技术社区  · 14 年前

    我需要在调试时看到一个STD::MAP变量的内容。但是,如果我在autos/locals选项卡中单击它,我将看到特定于实现的内容,而不是要查看的键及其内容。我是不是失踪了?

    2 回复  |  直到 14 年前
        1
  •  1
  •   Kirill V. Lyadvinsky    14 年前

    我现在附近没有VS2003。但您可以尝试在“autoexp.dat”中添加以下部分(我确信在vs2003中已经包含了所有标准类型的部分):

    ;------------------------------------------------------------------------------
    ;  std::map
    ;------------------------------------------------------------------------------
    
    std::map<*>{
        children
        (
            #tree
            (
                head : $c._Myhead->_Parent, 
                skip : $c._Myhead, 
                size : $c._Mysize, 
                left : _Left, 
                right : _Right
            ) : $e._Myval
        )
    
        preview
        (
            #(
                "[", 
                $e._Mysize, 
                "](", 
    
                #tree
                (
                    head : $c._Myhead->_Parent, 
                    skip : $c._Myhead, 
                    size : $c._Mysize, 
                    left : _Left, 
                    right : _Right
                ) : $e._Myval,
    
                ")"
            )
        )            
    }
    

    此文件的结构和autoexp规则的语法可能会从visual studio的一个版本更改为下一个版本。读 here 有关Visual Studio自定义可视化工具的详细信息。

        2
  •  2
  •   Dan Story    14 年前

    我没有visual studio 2003的副本可供测试,但我刚刚检查了vs2008和2010,两者都会在悬停时自动显示地图的内容。我模模糊糊地记得2003年stl检查遇到了很多麻烦,所以我猜这是他们在这几年里大幅度改进的一个特性。

    如果您的项目是可能的,您可能会考虑升级到Visual C++ 2008 Express,这是免费的,应该具有您需要的大部分功能。