I'm getting a problem (maybe I'm messing things up) when
using gpointer in a GList to point a structure. When it is
pointing to a gchar everything works fine.
Segfault occurs when calling g_print() :Program received signal SIGSEGV, Segmentation fault.
0x4000c2bc in fixup () from /lib/ld-linux.so.2
(gdb) where
#0 0x4000c2bc in fixup () from /lib/ld-linux.so.2
#1 0x4000c270 in _dl_runtime_resolve () from /lib/ld-linux.so.2
#2 0x4005a810 in g_strdup_vprintf () from /usr/lib/libglib-2.0.so.0
#3 0x40050394 in g_print () from /usr/lib/libglib-2.0.so.0
#4 0x080486cc in main (argc=1, argv=0xbffff574) at glist.c:32
#5 0x420156a4 in __libc_start_main () from /lib/tls/libc.so.6
(gdb) up 1
#1 0x4000c270 in _dl_runtime_resolve () from /lib/ld-linux.so.2
(gdb) up 1
#2 0x4005a810 in g_strdup_vprintf () from /usr/lib/libglib-2.0.so.0
(gdb) up 1
#3 0x40050394 in g_print () from /usr/lib/libglib-2.0.so.0
(gdb) up 1
#4 0x080486cc in main (argc=1, argv=0xbffff574) at glist.c:32
32 g_print("%s\n",record->data);
(gdb) print record->data
$1 = (gchar *) 0x804a168 "Brasilino"record->data is gchar* :-))
I've tested against glib-2.2.1 (RedHat 9 stock rpm) and self-compiled glib 2.2.2.
Any tip or help? Thanks a lot in advance
====== cut here ===============
#include <stdio.h> #include <string.h> #include <glib.h>
int main(int argc, char **argv)
{ GList *dlist = NULL, *list = NULL;
guint length,i;
struct {
guint index;
gchar *data;
} *record; record->data = g_malloc(strlen("Lucas")+1);
g_strlcpy(record->data,"Lucas",strlen("Lucas")+1);
dlist = g_list_append(dlist, record); record->data = g_malloc(strlen("Brasilino")+1);
g_strlcpy(record->data,"Brasilino", strlen("Brasilino")+1);
dlist = g_list_append(dlist, record);length = g_list_length(dlist);
g_printf("%d \n",length);
record = NULL;
list = g_list_first(dlist);
while(list)
{
record = list->data;
g_print("%s\n",record->data);
list = list->next;
}
}================
--
[]'s Lucas Brasilino [EMAIL PROTECTED] http://www.recife.pe.gov.br Emprel - Empresa Municipal de Informatica (pt_BR) Municipal Computing Enterprise (en_US) Recife - Pernambuco - Brasil Fone: +55-81-34167078
_______________________________________________ gtk-list mailing list [EMAIL PROTECTED] http://mail.gnome.org/mailman/listinfo/gtk-list
