我随机杀死了我的应用程序

时间:2018-03-13 10:43:08

标签: c gtk

在我的C语言中的GTK +应用程序中,随机发生以下错误,我的应用程序被杀死:

  

gtk_text_buffer_emit_insert: assertion 'g_utf8_validate (text, len, NULL)' failed

如果其他人也遇到同样的问题并解决了,请帮助我。

以下是我正在做的事情的一个例子, `

char text[1024];
int size = 0;

sprintf(text+0,"Be Still & Please Follow Instructions");
size = strlen((char *)text)
gtk_text_buffer_set_text (GTK_TEXT_BUFFER(text_buff),(char *)text,size);

`

1 个答案:

答案 0 :(得分:1)

这很明显,因为您插入的文本无法验证为UTF-8。当然,我们无法提供更详细的帮助,因为我们没有您的代码。

检查您是否致电gtk_text_buffer_emit_insert()或某个功能,而这些功能又会调用该功能。基本上,检查您将文本传递给某些“大”文本显示小部件的所有位置。

获得帮助的一种方法当然是自己添加对同一验证功能的调用,即g_utf8_validate(),然后您可以打印出一条消息,以便您可以了解哪个文本插入失败,添加一个断点适用于您的调试器或其他任何内容。