gtk 1.2 to 2.0 upgrade woes



I have done a little development using gtk 1.2.10 and have started looking at upgrading. Someone installed gtk 2.0 on a networked disk I have access to, so I tried building my application using that.

However, having hacked through the incompatibilities, when I run my app
it crashes with a segfault in gtk_init().

I've spent hours trawling the archives looking for an example of someone
else encountering and solving this, without success, so I hope someone
can help.

Eventually I wrote a noddy app to demonstrate the problem.  The hard
bit is that as far as I'm concerned, gtk_init() is a black box.  If the
prog dies in there, I have no clue as to why. The source might be out there somewhere, but I don't know where.

So first I attach the back trace output from gdb, then the source of
my noddy app.

Any help would be much appreciated.
Rob Clack


(gdb) r
Starting program: /.automount/cbi1/root/nfs/team71/acedb/rnc/play/prog

Program received signal SIGSEGV, Segmentation fault.
0x0805ea67 in ?? ()
(gdb) bt
#0  0x0805ea67 in ?? ()
#1  0x40108de5 in gtk_rc_scanner_new () from /usr/lib/libgtk-x11-2.0.so.0
#2  0x401083be in gtk_rc_scanner_new () from /usr/lib/libgtk-x11-2.0.so.0
#3  0x40107680 in gtk_rc_scanner_new () from /usr/lib/libgtk-x11-2.0.so.0
#4  0x401057da in gtk_rc_parse_string () from /usr/lib/libgtk-x11-2.0.so.0
#5 0x4010570f in gtk_rc_get_default_files () from /usr/lib/libgtk-x11-2.0.so.0
#6  0x400d9061 in gtk_init_check () from /usr/lib/libgtk-x11-2.0.so.0
#7  0x400d90df in gtk_init () from /usr/lib/libgtk-x11-2.0.so.0
#8  0x08048c40 in main (argc=1, argv=0xbfffdef4) at prog.c:33
#9  0x403d21c4 in __libc_start_main () from /lib/libc.so.6
(gdb)



#include <stdio.h>
#include <gtk/gtk.h>


void Quit(GtkWidget *w, gpointer data)
{
    gtk_widget_destroy(w);
}

int main(int argc, char *argv[])
{
  GtkWidget *window, *vbox, *hbox, *sWindow;


  gtk_init(&argc, &argv);

  window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
  vbox = gtk_vbox_new(FALSE, 1);
  gtk_container_add(GTK_CONTAINER(window), vbox);

  hbox = gtk_hbox_new(FALSE, 0);
  gtk_box_pack_start(GTK_BOX(vbox), hbox, TRUE, TRUE, 0);

  sWindow = gtk_scrolled_window_new(NULL, NULL);
  gtk_box_pack_start(GTK_BOX(hbox), sWindow, TRUE, TRUE, 0);

  gtk_signal_connect(GTK_OBJECT(window), "destroy",
                     GTK_SIGNAL_FUNC(Quit), NULL);

  gtk_widget_show_all(window);

  gtk_main();

  return(0);
}

--
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
If you must choose between two evils, pick the one you've never tried before.
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 Rob Clack                        Acedb Development,  Informatics Group
 email: rnc sanger ac uk                Wellcome Trust Sanger Institute
 Tel: +44 1223 494780                   Wellcome Trust Genome Campus
 Fax: +44 1223 494919                   Hinxton  Cambridge    CB10 1SA




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]