GTK程序套接字程序。今天居然调试了一天。不太会用gdb,而且又是多线程。
这个程序会开两个个线程,一个读其他客户端发来的消息,一个读服务器发来的消息。
读到服务器发送的某些消息后可能会操作列表liststore,插入或删除。
可是一接受到服务器那边法国来的信息时就报错gtk_text_buffer_emit_insert: assertion `g_utf8_validate (text, len, NULL)' failed。
我又不知道具体是执行哪行代码时出的错。设制了很多断点,就是没经过断点就出错了。
网上搜了一下,别人的这个错误都是gtk_text_buffer_set_text()引起的,可我没用这个函数。
我用到的函数是:gtk_tree_model_get,
gtk_list_store_append(store,&iter);
gtk_list_store_set(store,&iter,0,name,1,ip,2,_port,-1);
而且我在这个几个函数前都设了断点,还加了printf打印,可是没见到printf执行。断点也没遇到,错误就出了。
我要崩溃了。今天六级都没去考,就调这个程序了。
顺便问一下,是不是我设制断点的方式错了吗?怎么在接下来要创建的线程所要用到的函数中设置断点呢?
我一直用的break file.c:linenum
2 个解决方案
#1
居然没人回啊
#2
我因为其他原因修改了代码。这个错误也跟着自己消失了。神奇去。今天心情好就 无满意结贴了。
#1
居然没人回啊
#2
我因为其他原因修改了代码。这个错误也跟着自己消失了。神奇去。今天心情好就 无满意结贴了。