Benedikt Schindler schreef:
i recompiled the hole fpc with the option "-gl" and the patch Paul Ishenin mentioned.
there is still a problem with programms, that wonna use windows.
console prorgamms just work fine.

if i try to run a lazarus programm i get this backtrace.



Program received signal SIGSEGV, Segmentation fault.
0x49534e40 in ?? ()
(gdb) cont
Continuing.

Program received signal SIGSEGV, Segmentation fault.
0x4052d860 in g_object_unref () from /usr/lib/libgobject-2.0.so.0
(gdb) bt
#0  0x4052d860 in g_object_unref () from /usr/lib/libgobject-2.0.so.0
#1 0x0015ada0 in TGTK2WIDGETSET__DESTROY (vmt=0xffffffff, this=0x40b8e020) at /media/mmcblk0p3/lazarus/lcl/interfaces/gtk2/gtk2widgetset.inc:551 #2 0x0015ad04 in TGTK2WIDGETSET__CREATE (vmt=0x205fc8, this=0x40b8e020) at /media/mmcblk0p3/lazarus/lcl/interfaces/gtk2/gtk2widgetset.inc:547 #3 0x0003b164 in CREATEWIDGETSET (AWIDGETSETCLASS=<incomplete type>) at /media/mmcblk0p3/lazarus/lcl/forms.pp:1706 #4 0x0003a8a0 in INTERFACES_init () at /media/mmcblk0p3/lazarus/lcl/interfaces/gtk2/interfaces.pas:39 #5 0x00031a50 in fpc_initializeunits () at /media/mmcblk0p3/fpc/rtl/inc/system.inc:766
#6  0x00019a8c in main () at om_test_suite.lpr:13

What I think that happens is:
The constructor TGTK2WIDGETSET.CREATE fails somehow, unclear from this back trace, but probably before or in im_context:=gtk_im_multicontext_new;

The destructor is called which tries to cleanup im_context, which fails, because im_context has not been intialized correctly.

This particular crash may be prevented by using this destructor:
destructor TGtk2WidgetSet.Destroy;
begin
  if im_context<>nil then
    g_object_unref(im_context);
  im_context:=nil;
  im_context_widget:=nil;
  inherited Destroy;
end;

Nevertheless, it doesn't solve the exception in the constructor on TGtk2Widget.

Vincent



_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to