Hello, When I try to launch a program that embeds mozilla in gtk using gtkmozembed, I get a segmentation fault:
--------------------------------------------8<---------------------------- freebsd# ./mozembed newbrowser() window vbox adding vbox to window creating mozembed Warning: MOZILLA_FIVE_HOME not set. adding it to vbox showing mozembed showing vbox showing window Segmentation fault (core dumped) freebsd# gdb mozembed mozembed.core GNU gdb 4.18 Copyright 1998 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "i386-unknown-freebsd"... (no debugging symbols found)... Core was generated by `mozembed'. Program terminated with signal 11, Segmentation fault. Reading symbols from /usr/local/lib/libgtk-1.2.so.9...done. Reading symbols from /usr/local/lib/libgdk-1.2.so.9...done. Reading symbols from /usr/local/lib/libgmodule-1.2.so.0...done. Reading symbols from /usr/local/lib/libglib-1.2.so.0...done. Reading symbols from /usr/X11R6/lib/libXext.so.6...done. Reading symbols from /usr/X11R6/lib/libX11.so.6...done. Reading symbols from /usr/lib/libm.so.2...done. Reading symbols from /root/mozilla/dist/lib//libgtkembedmoz.so...done. Reading symbols from /root/mozilla/dist/lib//libplds4.so...done. Reading symbols from /root/mozilla/dist/lib//libplc4.so...done. Reading symbols from /root/mozilla/dist/lib//libnspr4.so...done. Reading symbols from /root/mozilla/dist/lib//libgtksuperwin.so...done. Reading symbols from /root/mozilla/dist/lib//libxpcom.so...done. ---Type <return> to continue, or q <return> to quit--- Reading symbols from /usr/lib/libc_r.so.4...done. Reading symbols from /usr/X11R6/lib/libXft.so.1...done. Reading symbols from /usr/lib/libc.so.4...done. Reading symbols from /usr/X11R6/lib/libXThrStub.so.6...done. Reading symbols from /usr/lib/libstdc++.so.3...done. Reading symbols from /usr/X11R6/lib/libXrender.so.1...done. Reading symbols from /usr/X11R6/lib/libfreetype.so.6...done. Reading symbols from /usr/libexec/ld-elf.so.1...done. #0 0x282f1933 in EmbedPrivate::Realize () from /root/mozilla/dist/lib//libgtkembedmoz.so (gdb) bt #0 0x282f1933 in EmbedPrivate::Realize () from /root/mozilla/dist/lib//libgtkembedmoz.so #1 0x282eefdc in _init () from /root/mozilla/dist/lib//libgtkembedmoz.so #2 0x280f9781 in gtk_marshal_NONE__NONE (object=0x809fe80, func=0x282eedf4 <_init+5124>, func_data=0x0, args=0xbfbfe8fc) at gtkmarshal.c:312 #3 0x28127e6b in gtk_signal_real_emit (object=0x809fe80, signal_id=6, params=0xbfbfe8fc) at gtksignal.c:1440 #4 0x281260af in gtk_signal_emit (object=0x809fe80, signal_id=6) at gtksignal.c:552 #5 0x28159cac in gtk_widget_realize (widget=0x809fe80) at gtkwidget.c:1655 #6 0x28159989 in gtk_widget_map (widget=0x809fe80) at gtkwidget.c:1594 #7 0x28098064 in gtk_box_map (widget=0x809fd80) at gtkbox.c:606 #8 0x280f9781 in gtk_marshal_NONE__NONE (object=0x809fd80, func=0x28097f54 <gtk_box_map>, func_data=0x0, args=0xbfbfecec) at gtkmarshal.c:312 #9 0x28127e6b in gtk_signal_real_emit (object=0x809fd80, signal_id=4, params=0xbfbfecec) at gtksignal.c:1440 #10 0x281260af in gtk_signal_emit (object=0x809fd80, signal_id=4) at gtksignal.c:552 #11 0x281599bc in gtk_widget_map (widget=0x809fd80) at gtkwidget.c:1596 #12 0x28163b63 in gtk_window_map (widget=0x8092680) at gtkwindow.c:990 #13 0x280f9781 in gtk_marshal_NONE__NONE (object=0x8092680, ---Type <return> to continue, or q <return> to quit--- func=0x28163a5c <gtk_window_map>, func_data=0x0, args=0xbfbff09c) at gtkmarshal.c:312 #14 0x28127e6b in gtk_signal_real_emit (object=0x8092680, signal_id=4, params=0xbfbff09c) at gtksignal.c:1440 #15 0x281260af in gtk_signal_emit (object=0x8092680, signal_id=4) at gtksignal.c:552 #16 0x281599bc in gtk_widget_map (widget=0x8092680) at gtkwidget.c:1596 #17 0x281638da in gtk_window_show (widget=0x8092680) at gtkwindow.c:906 #18 0x280f9781 in gtk_marshal_NONE__NONE (object=0x8092680, func=0x28163760 <gtk_window_show>, func_data=0x0, args=0xbfbff4ac) at gtkmarshal.c:312 #19 0x28127e6b in gtk_signal_real_emit (object=0x8092680, signal_id=2, params=0xbfbff4ac) at gtksignal.c:1440 #20 0x281260af in gtk_signal_emit (object=0x8092680, signal_id=2) at gtksignal.c:552 #21 0x28159104 in gtk_widget_show (widget=0x8092680) at gtkwidget.c:1434 #22 0x804b073 in newbrowser () #23 0x804aeb8 in main () #24 0x804adf1 in _start () (gdb) q freebsd# ^Dexit Script done on Fri Oct 26 14:37:11 2001 ----------------------------------------8<---------------------------------- ---- I used the following code: ----------------------------------------8<---------------------------------- ---- #include <gtk/gtk.h> #include <gtkmozembed.h> #include <nsEmbedAPI.h> typedef struct _Browser { GtkWidget *window; GtkWidget *vbox; GtkWidget *mozembed; } Browser; static Browser *newbrowser(void); int main(int argc, char *argv[]) { Browser *brow; gtk_set_locale(); gtk_init(&argc, &argv); gtk_moz_embed_set_profile_path(".", "mozembed"); brow = newbrowser(); gtk_main(); } Browser *newbrowser() { Browser *browser = 0; browser = g_new0(Browser, 1); printf("newbrowser()\n"); printf("\twindow\n"); browser->window = gtk_window_new(GTK_WINDOW_TOPLEVEL); printf("\tvbox\n"); browser->vbox = gtk_vbox_new(FALSE, 0); printf("\tadding vbox to window\n"); gtk_container_add(GTK_CONTAINER(browser->window), browser->vbox); printf("\tcreating mozembed\n"); browser->mozembed = gtk_moz_embed_new(); gtk_moz_embed_load_url(GTK_MOZ_EMBED(browser->mozembed), "http://localhost"); printf("\tadding it to vbox\n"); gtk_box_pack_start(GTK_BOX(browser->vbox), browser->mozembed, TRUE, TRUE, 0); printf("\tshowing mozembed\n"); gtk_widget_show(browser->mozembed); printf("\tshowing vbox\n"); gtk_widget_show(browser->vbox); printf("\tshowing window\n"); gtk_widget_show(browser->window); return browser; } ----------------------------------------8<---------------------------------- ---- Please help me Many thanks Alex