[Fxruby-users] Re: random crashes with FXTable
Status: Inactive
Brought to you by:
lyle
From: Emmanuel T. <emm...@wa...> - 2003-07-15 14:01:35
|
[didn't receive back this message 50 min after sending it.. sending again] Hello, I have a fxruby project in which i have random crashes definitely connected to the FXTable widget. It might very well be my code, in the case i would put invalid values in the table. but the crash is not happening when i do anything to the table. the crash is in the FOX event loop, when my code is doing nothing special. then FOX crashes. on the terminal is written: ----------------- glossary.rbw:434: [BUG] Segmentation fault ruby 1.6.7 (2002-03-01) [i586-mswin32] abnormal program termination ----------------- unfortunately at this line is : application.run since the crashes are random (i basically trigger them by clicking all over the place, scrolling etc for few minutes.. otherwise they happen anyway after a while of using the program), i don't really know what to do. i can give my script if you are interested, but it's 1400 lines (but it's very simple, really nothing complicated, most of the code is actually GUI code to place the buttons etc). i'm putting about 270 elements on two columns in the table. could i get more info about the crash by doing some kind of "ruby -trace glossary.rbw" or something like that? i'm using the windows version of ruby-fox given with the binary installer: 1.0.24. on a related note, i also get crashes on linux on the same application, but with the most recent version of ruby-fox, compiled by hand. this time the crashes are absolutely systematic and 100% reproductible, and they do depend on the actions of my script (eg it crashes when i do things with the table), so i guess they are different. but maybe it's the same cause, only this more recent version of FXRuby reacts differently on my script. so for the reference i mention it in this mail too. i ran it with GDB, and got the following stack trace: Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 1024 (LWP 4531)] 0x00000029 in ?? () (gdb) bt #0 0x00000029 in ?? () #1 0x08050f53 in search_method (klass=1086528144, id=33433, origin=0xbfffdf64) at eval.c:275 #2 0x08050f9e in rb_get_method_body (klassp=0xbfffdfb0, idp=0xbfffdf94, noexp=0xbfffdf at eval.c:293 #3 0x0805a824 in rb_call (klass=1086528144, recv=1086528444, mid=33433, argc=6, argv=0xbfffdfd0, scope=1) at eval.c:4617 #4 0x0805ab89 in rb_funcall (recv=1086528444, mid=33433, n=6) at eval.c:4714 #5 0x405dfd37 in void FXRbCallVoidMethod<FXTable const *, FXDC, int, int, int, int> ( recv=0x82cfdd0, func=33433, arg1=0x824bbd0, arg2=@0xbfffea50, arg3=0, arg4=20, arg5=178, arg6=20) at include/FXRuby.h:346 #6 0x4052a211 in FXRbTableItem::draw (this=0x82cfdd0, table=0x824bbd0, dc=@0xbfffea50, x=0, y=20, w=178, h=20) at impl.cpp:830 #7 0x40888ec1 in FXTable::drawCell () from /usr/local/lib/libFOX-1.0.so.0 #8 0x4052b21d in FXRbTable::public_drawCell (this=0x824bbd0, dc=@0xbfffea50, xlo=1, xhi=263, ylo=21, yhi=176, xoff=0, yoff=0, sr=1, er=2, sc=0, ec=1) at impl.cpp:838 #9 0x405d7234 in FXTable_drawCell (self=0x824bbd0, dc=@0xbfffea50, xlo=1, xhi=263, ylo=21, yhi=176, xoff=0, yoff=0, sr=1, er=2, sc=0, ec=1) at include/inlinestubs.h:837 #10 0x404ad8f5 in _wrap_FXTable_drawCell (argc=11, argv=0xbfffe420, self=1086938632) at table_wrap.cpp:1758 #11 0x08059c29 in call_cfunc ( func=0x404ad5b0 <_wrap_FXTable_drawCell(int, unsigned long *, unsigned long)>, recv=1086938632, len=-1, argc=11, argv=0xbfffe420) at eval.c:4279 #12 0x0805a142 in rb_call0 (klass=1086585724, recv=1086938632, id=34881, argc=11, argv=0xbfffe420, body=0x40c3df20, nosuper=1) at eval.c:4416 #13 0x0805a945 in rb_call (klass=1086585724, recv=1086938632, mid=34881, argc=11, argv=0xbfffe420, scope=1) at eval.c:4640 #14 0x0805ab89 in rb_funcall (recv=1086938632, mid=34881, n=11) at eval.c:4714 #15 0x405dfeb9 in FXRbCallVoidMethod__H11Z4FXDCZiZiZiZiZiZiZiZiZiZi_P8FXObjectUlRX01X11X21X31X 41X51X61X71X81X91X_10_1_v (recv=0x824bbd0, func=34881, arg1=@0xbfffea50, arg2=1, arg3=263, arg4=21, arg5=176, arg6=0, arg7=0, arg8=1, arg9=2, arg10=0, arg11=1) at include/FXRuby.h:363 #16 0x4052b1d3 in FXRbTable::drawCell (this=0x824bbd0, dc=@0xbfffea50, xlo=1, xhi=263, ylo=21, yhi=176, xoff=0, yoff=0, sr=1, er=2, sc=0, ec=1) at impl.cpp:838 #17 0x4088948f in FXTable::drawRange () from /usr/local/lib/libFOX-1.0.so.0 #18 0x4052b2cd in FXRbTable::public_drawRange (this=0x824bbd0, dc=@0xbfffea50, xlo=1, xhi=263, ylo=21, yhi=176, xoff=0, yoff=0, rlo=1, rhi=263, clo=0, chi=2) at impl.cpp:838 #19 0x405d7304 in FXTable_drawRange (self=0x824bbd0, dc=@0xbfffea50, xlo=1, xhi=263, ylo=21, yhi=176, xoff=0, yoff=0, rlo=1, rhi=263, clo=0, chi=2) at include/inlinestubs.h:837 #20 0x404adc55 in _wrap_FXTable_drawRange (argc=11, argv=0xbfffe8b0, self=1086938632) at table_wrap.cpp:1766 #21 0x08059c29 in call_cfunc ( func=0x404ad910 <_wrap_FXTable_drawRange(int, unsigned long *, unsigned long)>, recv=1086938632, len=-1, argc=11, argv=0xbfffe8b0) at eval.c:4279 #22 0x0805a142 in rb_call0 (klass=1086585724, recv=1086938632, id=34889, argc=11, argv=0xbfffe8b0, body=0x40c3def8, nosuper=1) at eval.c:4416 #23 0x0805a945 in rb_call (klass=1086585724, recv=1086938632, mid=34889, argc=11, argv=0xbfffe8b0, scope=1) at eval.c:4640 #24 0x0805ab89 in rb_funcall (recv=1086938632, mid=34889, n=11) at eval.c:4714 #25 0x405dfeb9 in FXRbCallVoidMethod__H11Z4FXDCZiZiZiZiZiZiZiZiZiZi_P8FXObjectUlRX01X11X21X31X 41X51X61X71X81X91X_10_1_v (recv=0x824bbd0, func=34889, arg1=@0xbfffea50, arg2=1, arg3=263, arg4=21, arg5=176, arg6=0, arg7=0, arg8=1, arg9=263, arg10=0, arg11=2) at include/FXRuby.h:363 #26 0x4052b283 in FXRbTable::drawRange (this=0x824bbd0, dc=@0xbfffea50, xlo=1, xhi=263, ylo=21, yhi=176, xoff=0, yoff=0, rlo=1, rhi=263, clo=0, chi=2) at impl.cpp:838 #27 0x40889a33 in FXTable::onPaint () from /usr/local/lib/libFOX-1.0.so.0 #28 0x408849f0 in FXTable::handle () from /usr/local/lib/libFOX-1.0.so.0 #29 0x403af3e9 in FXRbTable::handle (this=0x824bbd0, sender=0x8223c98, key=1048576, ptr=0x8223d24) at include/impl.h:147 #30 0x40780c00 in FXApp::dispatchEvent () from /usr/local/lib/libFOX-1.0.so.0 #31 0x407831ad in FXApp::runOneEvent () from /usr/local/lib/libFOX-1.0.so.0 #32 0x40782eb3 in FXApp::run () from /usr/local/lib/libFOX-1.0.so.0 #33 0x403dc682 in _wrap_FXApp_run (argc=0, argv=0x0, self=1086941032) at core_wrap.cpp:2027 #34 0x08059c29 in call_cfunc ( func=0x403dc610 <_wrap_FXApp_run(int, unsigned long *, unsigned long)>, recv=1086941032, len=-1, argc=0, argv=0x0) at eval.c:4279 #35 0x0805a142 in rb_call0 (klass=1075556540, recv=1086941032, id=5713, argc=0, argv=0x0, body=0x401babf8, nosuper=1) at eval.c:4416 #36 0x0805a945 in rb_call (klass=1075556540, recv=1086941032, mid=5713, argc=0, argv=0x0, scope=0) at eval.c:4640 #37 0x08055a2c in rb_eval (self=1075670240, n=0x401c9a40) at eval.c:2572 #38 0x0805241c in ruby_run () at eval.c:1230 #39 0x08050bbe in main (argc=2, argv=0xbffff65c, envp=0xbffff668) at main.c:50 #40 0x400960de in __libc_start_main () from /lib/libc.so.6 i really love what i saw about fxruby so far, please help me on this! emmanuel |