【问题标题】:Segfault when calling Gtkmm textBuffer->insert调用 Gtkmm textBuffer->insert 时出现段错误
【发布时间】:2009-07-17 21:23:33
【问题描述】:

我只是在学习 gtkmm for c++。 我无法获得一个简单的 TextBuffer 来添加新的文本行。 我有一个名为 OutputBox 的类,它是一个带有 TextViewer(称为消息)和 TextBuffer(称为 textBuffer)的 HBox。

这是 OutputBox 类的一小部分:

OutputBox::OutputBox() {
  textBuffer = messages.get_buffer();
};

void OutputBox::addText( string newText) {
  textBuffer->insert(textBuffer->begin(), newText);
};

现在我希望当我将一个字符串传递给 addText 时,新字符串将被添加到缓冲区中,但我得到了一个 seg 错误。

通过gdb运行后,我看到错误来自这里的gtkmm库:

template <class T_CppObject> inline
T_CppObject* RefPtr<T_CppObject>::operator->() const
{
  return pCppObject_;
}

我也不确定这告诉了我什么。我认为我错误地使用了这个类。

【问题讨论】:

    标签: c++ debugging segmentation-fault gtkmm


    【解决方案1】:

    我建议附加一个调试器来查看故障发生在哪里。

    如果它发生在 GTKmm 库中,那么您可能错误地使用了 API。如果它出现在您的代码中,那么它将为您指明正确的方向

    :)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-03-17
      • 2017-08-05
      • 2015-10-03
      • 2018-05-15
      • 2019-04-20
      • 2015-10-02
      相关资源
      最近更新 更多