在我的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);
`
答案 0 :(得分:1)
这很明显,因为您插入的文本无法验证为UTF-8。当然,我们无法提供更详细的帮助,因为我们没有您的代码。
检查您是否致电gtk_text_buffer_emit_insert()
或某个功能,而这些功能又会调用该功能。基本上,检查您将文本传递给某些“大”文本显示小部件的所有位置。
获得帮助的一种方法当然是自己添加对同一验证功能的调用,即g_utf8_validate()
,然后您可以打印出一条消息,以便您可以了解哪个文本插入失败,添加一个断点适用于您的调试器或其他任何内容。