调用Gtkmm textBuffer->插入时的Segfault

时间:2009-07-17 21:23:34

标签: c++ debugging segmentation-fault gtkmm

我刚刚学习了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_;
}

我不确定这对我说的是什么。我认为我错误地使用了这门课程。

1 个答案:

答案 0 :(得分:1)

我建议附加调试器以查看故障发生的位置。

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

:)