【问题标题】:Is there any convinient way to check the values of the member variables of a class in Eclipse?是否有任何方便的方法来检查 Eclipse 中类的成员变量的值?
【发布时间】:2019-11-20 09:19:45
【问题描述】:

我正在编写一些代码,利用std::vector 类来存储用户定义类的对象。对于调试,我需要密切关注这个类的一些特定成员变量。为此,我从调试器的角度进入了变量视图,并将相关的成员变量置于监视之下。然而,在表达式视图中,我最终得到的变量看起来像这样:

((((((类 std::_Vector_base >::_Vector_impl_data) ((((类 std::_Vector_base >) ((baseExpression).baseExpression)))._M_impl)))._M_start))->expressionPtr)

不用说,这看起来很烦人。

我尝试在表达式视图的“表达式”列下编辑变量的名称,但这似乎从监视窗口中删除了整个变量。例如,我会尝试将上面的名称设置为简单的“expressionPtr”,但会遇到以下错误:

报告了多个错误。 1)执行MI命令失败: -var-create - * 表达式指针 来自调试器后端的错误消息: -var-create: 无法创建变量对象 2) 无法创建变量对象 3)执行MI命令失败: -数据评估表达式表达式Ptr 来自调试器后端的错误消息: 当前上下文中没有符号“expressionPtr”。 4)执行MI命令失败: -var-create - * 表达式指针 来自调试器后端的错误消息: -var-create: 无法创建变量对象

有没有办法在调试时为成员变量分配唯一标识符以使其更容易看?此外,由于向量类在运行时将持有无限数量的对象,我还想跟踪每个对象的成员变量。例如,考虑以下代码:

class Foo
{
public:
    int a_var;
    int b_var;
};

int main ()
{
    Foo a;
    Foo b;
    //some code to work with Foo::a_var and Foo::b_var
}

我想在分配时跟踪ab 的成员变量。 一些帮助将不胜感激。提前致谢!

【问题讨论】:

    标签: c++ eclipse debugging member-variables


    【解决方案1】:

    在搞砸了一点之后,我想出了解决这个问题的方法,而且非常简单。我所要做的就是将包含我的类对象的向量对象的成员对象变量添加到监视列表中。但是,我试图像一个完全白痴一样将每个成员变量单独添加到监视列表中。
    无论如何,将std::_Vector_base<Expression, std::allocator<Expression> >::_Vector_impl_data 类型的标题为std::_Vector_base<Expression, std::allocator<Expression> >::_Vector_impl_data<Expression> >::_Vector_impl_data 的对象放在手表上后,我的问题就解决了。之后,我所要做的就是展开这个对象,它现在将在表达式视图和 viola 中列出!我把所有必需的成员变量都放在了我可以看到的地方。

    【讨论】:

      猜你喜欢
      • 2011-01-13
      • 1970-01-01
      • 2015-03-06
      • 1970-01-01
      • 2013-03-28
      • 1970-01-01
      • 2013-11-16
      • 2019-01-19
      • 1970-01-01
      相关资源
      最近更新 更多