panel crashed, segmentation fault
Jasper Huijsmans
jasper at moongroup.com
Thu Mar 13 10:44:43 CET 2003
On Thu, 13 Mar 2003 10:25:04 +0100
Jasper Huijsmans <jasper at moongroup.com> wrote:
> On Wed, 12 Mar 2003 15:23:43 +0100
> Jasper Huijsmans <jasper at moongroup.com> wrote:
>
> >
> > hmm, Olivier, the segfault is in mcs_client_destroy(). From gdb:
> >
> > #4 0x406099b0 in mcs_client_destroy (client=0x809f390) at
> > #mcs-client.c:642
> > 642 mcs_client_delete_channel(client,
> > client->channels->channel->channel_name);
> > (gdb) print *client
> > $1 = {display = 0x808ae68, screen = 0, notify = 0x8055170
> > <notify_cb>,
> >
> > watch = 0x8055200 <watch_cb>, cb_data = 0x0, mcs_manager_window =
> > 4194306, manager_atom = 235, selection_atom = 234, channels = 0x0}
> >
>
> Ok, more data. I don't get it at all. It seems as if the arguments to
> mcs_channel_lookup get switched (look at the variable adressess). And
> this is reproducible too.
>
> mcs_client_delete_channel (client=0x809f378,
> channel_name=0x80b8cf0 "XFCE")
> at mcs-client.c:181
> 181 g_return_if_fail(channel_name!= NULL);
>
> (gdb)
> 182 g_return_if_fail(client != NULL);
>
> (gdb)
> 184 channel = mcs_channel_lookup(client, channel_name);
>
> (gdb)
> mcs_channel_lookup (client=0x80b8cf0, channel_name=0x809f378 "X®\b\b")
> at mcs-client.c:121
> 121 for (channels = client->channels; channels;
> channels = channels->next)
Ok, this doesn't happen before Benedikt's changes. The channel name does
seem to get corrupted as well, but after the mcs_channel_lookup() call
and the client variable remains correct, so there is no crash.
I have no more time to look into it now. Maybe tonight.
Jasper
More information about the Xfce4-dev
mailing list