[Kde-bindings] crash testing a korundum application with rspec and ruby 1.8.7-p160

Stefano Crocco stefano.crocco at alice.it
Sun May 10 13:11:39 UTC 2009


I'm using rspec to test my korundum4 application (with latest svn revision of 
both kde and korundum). I have a sets of tests which, until yesterday, worked 
correctly. Yesterday, I installed ruby 1.8.7-p160 (before I used ruby-1.8.7-
p72) and suddnely I got a number of crashes. Looking at the changelog for 
ruby-1.8.7-p72, I noticed two entries related to the function run_final 
mentioned in the stack traces I got from the crashes. Those entries are:

* gc.c (run_final): frees zombies only
* gc.c (run_final): calls free function

I tried disabling the GC and indeed the tests stopped crashing. Since I don't 
know neither korundum nor ruby C internals, I understand very little of the 
stack traces I got, so, after some useless attempts at fixing the issue, I 
decided to ask for help.

I attach a file with the stack trace I got from the crash and the two files 
needed to reproduce it. Unfortunately, to reproduce them you need to have 
rspec ([1]) and flexmock ([2]) installed. To reproduce it, use the following 
command:

rspec -f html document_spec.rb

This will invoke rspec on the document_spec.rb file and output the result 
using a formatter (included with rspec) which displays the output as html. 
Omitting the -f html part, that is using the default rspec formatter, doesn't 
produce a crash. Using a custom formatter I wrote produces a similar crash in 
other places.

With the procedure I explained above, I get a crash in the before block of the 
last test (describe 'KRuby::Document#file_type_match?'). As the name says, 
'before' blocks are called before each test (which are the blocks passed to 
the 'it' methods), in particular on line 119 (the string "before creating doc" 
is printed but "after creating doc" is not). As I said above, uncommenting the 
line "GC.disable" makes the crash disappear. What I found more strange is that 
commenting out some of the tests in the "KRuby::Document#close" group also 
makes the crash disappear (I haven't been able to find out whether there are 
specific tests you need to comment out or not. It got the impression there's a 
bit of randomness in this). In theory, different groups of tests should be 
indipendent from each other.

The at_exit{Qt::Internal.application_terminated = true} block is there because 
it has been suggested to me as a way to avoid issues due to 
KDE::Application#exec not being called. However, its presence doesn't seem to 
make any difference in this case.

I must add that the application these tests refer to still works correctly. 
The crashes only happen in the tests.

Any suggestion about how to fix this issue (other than disabling GC) will be 
welcome. If you need more information, please ask.

Thanks in advance

Stefano

[1] http://rspec.info/
[2] http://flexmock.rubyforge.org/
-------------- next part --------------
Application: test (spec), signal: Segmentation fault
[KCrash Handler]
#6  0xb68ab360 in smokeruby_free (p=0x882f0b0) at /var/tmp/paludis/kde-base-korundum-scm/work/korundum/ruby/qtruby/src/handlers.cpp:373
#7  0xb7ec95e0 in run_final (obj=3040667820) at gc.c:1946
#8  0xb7ec9609 in finalize_list (p=0xb53ce8ac) at gc.c:1097
#9  0xb7ec97e7 in rb_gc_finalize_deferred () at gc.c:1974
#10 0xb7eb9385 in rb_thread_schedule () at eval.c:10993
#11 0xb7eb1ae5 in rb_eval (self=3083047980, n=0x882f0c8) at eval.c:4159
#12 0xb7ec0dc3 in handle_rescue (self=3083047980, node=<value optimized out>) at eval.c:5437
#13 0xb7eb50cc in rb_eval (self=3083047980, n=<value optimized out>) at eval.c:3331
#14 0xb7eb7161 in rb_call0 (klass=3040788720, recv=3083047980, id=46961, oid=46961, argc=1, argv=0xbfd633c0, body=0xb53ed3b0, flags=<value optimized out>) at eval.c:6057
#15 0xb7eb73c1 in rb_call (klass=3040788720, recv=3083047980, mid=46961, argc=1, argv=0xbfd633c0, scope=1, self=3083047980) at eval.c:6153
#16 0xb7eb1e1c in rb_eval (self=3083047980, n=<value optimized out>) at eval.c:3509
#17 0xb7eb2e99 in rb_eval (self=3083047980, n=<value optimized out>) at eval.c:3679
#18 0xb7eb7161 in rb_call0 (klass=3040788720, recv=3083047980, id=46857, oid=46857, argc=1, argv=0xbfd63f40, body=0xb53edf2c, flags=<value optimized out>) at eval.c:6057
#19 0xb7eb73c1 in rb_call (klass=3040788720, recv=3083047980, mid=46857, argc=1, argv=0xbfd63f40, scope=1, self=3083047980) at eval.c:6153
#20 0xb7eb1e1c in rb_eval (self=3083047980, n=<value optimized out>) at eval.c:3509
#21 0xb7eb7161 in rb_call0 (klass=3040788720, recv=3083047980, id=46841, oid=46841, argc=2, argv=0xbfd64660, body=0xb53efffc, flags=<value optimized out>) at eval.c:6057
#22 0xb7eb73c1 in rb_call (klass=3040788720, recv=3083047980, mid=46841, argc=2, argv=0xbfd64660, scope=1, self=3083047980) at eval.c:6153
#23 0xb7eb1e1c in rb_eval (self=3083047980, n=<value optimized out>) at eval.c:3509
#24 0xb7eb5928 in rb_yield_0 (val=12054798, self=3083047980, klass=0, flags=<value optimized out>, avalue=0) at eval.c:5079
#25 0xb7ec0594 in rb_yield (val=12054798) at eval.c:5163
#26 0xb7e94718 in rb_ary_each (ary=3040788560) at array.c:1261
#27 0xb7eac362 in call_cfunc (func=0xb7e946e1 <rb_ary_each>, recv=3040788560, len=142799048, argc=0, argv=0x882f0c8) at eval.c:5754
#28 0xb7eb7280 in rb_call0 (klass=3083415080, recv=3040788560, id=4001, oid=4001, argc=0, argv=0x0, body=0xb7c92a04, flags=<value optimized out>) at eval.c:5906
#29 0xb7eb73c1 in rb_call (klass=3083415080, recv=3040788560, mid=4001, argc=0, argv=0x0, scope=0, self=3083047980) at eval.c:6153
#30 0xb7eb1cf1 in rb_eval (self=3083047980, n=<value optimized out>) at eval.c:3494
#31 0xb7eb508d in rb_eval (self=3083047980, n=<value optimized out>) at eval.c:3224
#32 0xb7eb7161 in rb_call0 (klass=3040788720, recv=3083047980, id=2961, oid=2961, argc=3, argv=0xbfd66060, body=0xb53f0d08, flags=<value optimized out>) at eval.c:6057
#33 0xb7eb73c1 in rb_call (klass=3040788720, recv=3083047980, mid=2961, argc=3, argv=0xbfd66060, scope=1, self=6) at eval.c:6153
#34 0xb7eb7c9d in rb_funcall2 (recv=142799048, mid=2961, argc=3, argv=0xbfd66060) at eval.c:6289
#35 0xb7eb7d22 in rb_obj_call_init (obj=3083047980, argc=3, argv=0xbfd66060) at eval.c:7789
#36 0xb7ee4d81 in rb_class_new_instance (argc=3, argv=0xbfd66060, klass=3040788720) at object.c:1644
#37 0xb7eac37d in call_cfunc (func=0xb7ee4d4b <rb_class_new_instance>, recv=3040788720, len=142799048, argc=3, argv=0x882f0c8) at eval.c:5751
#38 0xb7eb7280 in rb_call0 (klass=3083447560, recv=3040788720, id=3361, oid=3361, argc=3, argv=0xbfd66060, body=0xb7c99a84, flags=<value optimized out>) at eval.c:5906
#39 0xb7eb73c1 in rb_call (klass=3083447560, recv=3040788720, mid=3361, argc=3, argv=0xbfd66060, scope=0, self=3080856260) at eval.c:6153
#40 0xb7eb1cf1 in rb_eval (self=3080856260, n=<value optimized out>) at eval.c:3494
#41 0xb7eb2f4d in rb_eval (self=3080856260, n=<value optimized out>) at eval.c:3699
#42 0xb7eb5928 in rb_yield_0 (val=3080856260, self=3080856260, klass=3040751920, flags=<value optimized out>, avalue=0) at eval.c:5079
#43 0xb7ec0462 in yield_under_i (self=3080856260) at eval.c:6753
#44 0xb7ead95c in exec_under (func=0xb7ec042b <yield_under_i>, under=<value optimized out>, cbase=0, args=0xb7a222c4) at eval.c:6703
#45 0xb7ead9df in yield_under (under=142799048, self=<value optimized out>, args=6) at eval.c:6771
#46 0xb7eae0da in specific_eval (argc=0, argv=0x0, klass=3040751920, self=3080856260) at eval.c:6790
#47 0xb7eac37d in call_cfunc (func=0xb7eae282 <rb_obj_instance_eval>, recv=3080856260, len=142799048, argc=0, argv=0x882f0c8) at eval.c:5751
#48 0xb7eb7280 in rb_call0 (klass=3083447460, recv=3080856260, id=4233, oid=4233, argc=0, argv=0x0, body=0xb7c98990, flags=<value optimized out>) at eval.c:5906
#49 0xb7eb73c1 in rb_call (klass=3083447460, recv=3080856260, mid=4233, argc=0, argv=0x0, scope=0, self=3040866580) at eval.c:6153
#50 0xb7eb1cf1 in rb_eval (self=3040866580, n=<value optimized out>) at eval.c:3494
#51 0xb7eb508d in rb_eval (self=3040866580, n=<value optimized out>) at eval.c:3224
#52 0xb7eb7161 in rb_call0 (klass=3040866920, recv=3040866580, id=46145, oid=46145, argc=4, argv=0xbfd67d50, body=0xb5400ec4, flags=<value optimized out>) at eval.c:6057
#53 0xb7eb73c1 in rb_call (klass=3040866920, recv=3040866580, mid=46145, argc=4, argv=0xbfd67d50, scope=0, self=3082234240) at eval.c:6153
#54 0xb7eb1cf1 in rb_eval (self=3082234240, n=<value optimized out>) at eval.c:3494
#55 0xb7eb2e99 in rb_eval (self=3082234240, n=<value optimized out>) at eval.c:3679
#56 0xb7eb2c8e in rb_eval (self=3082234240, n=<value optimized out>) at eval.c:2963
#57 0xb7eb7161 in rb_call0 (klass=3040773700, recv=3082234240, id=30561, oid=30561, argc=1, argv=0xbfd68d00, body=0xb5404204, flags=<value optimized out>) at eval.c:6057
#58 0xb7eb73c1 in rb_call (klass=3040773700, recv=3082234240, mid=30561, argc=1, argv=0xbfd68d00, scope=1, self=3082234240) at eval.c:6153
#59 0xb7eb1e1c in rb_eval (self=3082234240, n=<value optimized out>) at eval.c:3509
#60 0xb7eb1c03 in rb_eval (self=3082234240, n=<value optimized out>) at eval.c:3488
#61 0xb7eb1c03 in rb_eval (self=3082234240, n=<value optimized out>) at eval.c:3488
#62 0xb7eb1c03 in rb_eval (self=3082234240, n=<value optimized out>) at eval.c:3488
#63 0xb7eb5928 in rb_yield_0 (val=3082234240, self=3082234240, klass=3082204960, flags=<value optimized out>, avalue=0) at eval.c:5079
#64 0xb7ec0462 in yield_under_i (self=3082234240) at eval.c:6753
#65 0xb7ead95c in exec_under (func=0xb7ec042b <yield_under_i>, under=<value optimized out>, cbase=0, args=0xb7b72980) at eval.c:6703
#66 0xb7ead9df in yield_under (under=142799048, self=<value optimized out>, args=6) at eval.c:6771
#67 0xb7eae0da in specific_eval (argc=0, argv=0x0, klass=3082204960, self=3082234240) at eval.c:6790
#68 0xb7eac37d in call_cfunc (func=0xb7eae282 <rb_obj_instance_eval>, recv=3082234240, len=142799048, argc=0, argv=0x882f0c8) at eval.c:5751
#69 0xb7eb7280 in rb_call0 (klass=3083447460, recv=3082234240, id=4233, oid=4233, argc=0, argv=0x0, body=0xb7c98990, flags=<value optimized out>) at eval.c:5906
#70 0xb7eb73c1 in rb_call (klass=3083447460, recv=3082234240, mid=4233, argc=0, argv=0x0, scope=1, self=3082234240) at eval.c:6153
#71 0xb7eb1e1c in rb_eval (self=3082234240, n=<value optimized out>) at eval.c:3509
#72 0xb7ec0b43 in block_pass (self=3082234240, node=0xb7aeddd4) at eval.c:9182
#73 0xb7eb352f in rb_eval (self=3082234240, n=<value optimized out>) at eval.c:3210
#74 0xb7eb5928 in rb_yield_0 (val=3040971660, self=3082234240, klass=0, flags=<value optimized out>, avalue=0) at eval.c:5079
#75 0xb7ec0594 in rb_yield (val=3040971660) at eval.c:5163
#76 0xb7e94718 in rb_ary_each (ary=3040767500) at array.c:1261
#77 0xb7eac362 in call_cfunc (func=0xb7e946e1 <rb_ary_each>, recv=3040767500, len=142799048, argc=0, argv=0x882f0c8) at eval.c:5754
#78 0xb7eb7280 in rb_call0 (klass=3083415080, recv=3040767500, id=4001, oid=4001, argc=0, argv=0x0, body=0xb7c92a04, flags=<value optimized out>) at eval.c:5906
#79 0xb7eb73c1 in rb_call (klass=3083415080, recv=3040767500, mid=4001, argc=0, argv=0x0, scope=0, self=3082234240) at eval.c:6153
#80 0xb7eb1cf1 in rb_eval (self=3082234240, n=<value optimized out>) at eval.c:3494
#81 0xb7eb508d in rb_eval (self=3082234240, n=<value optimized out>) at eval.c:3224
#82 0xb7eb7161 in rb_call0 (klass=3081676620, recv=3082234240, id=23345, oid=23345, argc=1, argv=0xbfd6c400, body=0xb7aedd0c, flags=<value optimized out>) at eval.c:6057
#83 0xb7eb73c1 in rb_call (klass=3081676620, recv=3082234240, mid=23345, argc=1, argv=0xbfd6c400, scope=0, self=3040770380) at eval.c:6153
#84 0xb7eb1cf1 in rb_eval (self=3040770380, n=<value optimized out>) at eval.c:3494
#85 0xb7eb7161 in rb_call0 (klass=3081744320, recv=3040770380, id=23353, oid=23353, argc=1, argv=0xbfd6cb10, body=0xb7afd158, flags=<value optimized out>) at eval.c:6057
#86 0xb7eb73c1 in rb_call (klass=3081744320, recv=3040770380, mid=23353, argc=1, argv=0xbfd6cb10, scope=0, self=3082234240) at eval.c:6153
#87 0xb7eb1cf1 in rb_eval (self=3082234240, n=<value optimized out>) at eval.c:3494
#88 0xb7eb7161 in rb_call0 (klass=3081676620, recv=3082234240, id=23353, oid=23353, argc=0, argv=0x0, body=0xb7aecd80, flags=<value optimized out>) at eval.c:6057
#89 0xb7eb73c1 in rb_call (klass=3081676620, recv=3082234240, mid=23353, argc=0, argv=0x0, scope=2, self=3082234240) at eval.c:6153
#90 0xb7eb1e6b in rb_eval (self=3082234240, n=<value optimized out>) at eval.c:3515
#91 0xb7eb7161 in rb_call0 (klass=3081676620, recv=3082234240, id=23921, oid=23921, argc=0, argv=0x0, body=0xb7aebbc4, flags=<value optimized out>) at eval.c:6057
#92 0xb7eb73c1 in rb_call (klass=3081676620, recv=3082234240, mid=23921, argc=0, argv=0x0, scope=2, self=3082234240) at eval.c:6153
#93 0xb7eb1e6b in rb_eval (self=3082234240, n=<value optimized out>) at eval.c:3515
#94 0xb7eb4a38 in rb_eval (self=3082234240, n=<value optimized out>) at eval.c:3310
#95 0xb7eb5928 in rb_yield_0 (val=6, self=3082234240, klass=0, flags=<value optimized out>, avalue=0) at eval.c:5079
#96 0xb7eb20e0 in rb_eval (self=3081804500, n=<value optimized out>) at eval.c:3299
#97 0xb7eb208b in rb_eval (self=3081804500, n=<value optimized out>) at eval.c:3438
#98 0xb7eb7161 in rb_call0 (klass=3081803540, recv=3081804500, id=22745, oid=22745, argc=1, argv=0xbfd6f040, body=0xb7b0bca8, flags=<value optimized out>) at eval.c:6057
#99 0xb7eb73c1 in rb_call (klass=3081803540, recv=3081804500, mid=22745, argc=1, argv=0xbfd6f040, scope=0, self=3082234240) at eval.c:6153
#100 0xb7eb1cf1 in rb_eval (self=3082234240, n=<value optimized out>) at eval.c:3494
#101 0xb7eb508d in rb_eval (self=3082234240, n=<value optimized out>) at eval.c:3224
#102 0xb7eb7161 in rb_call0 (klass=3081676620, recv=3082234240, id=23817, oid=23817, argc=2, argv=0xbfd6fbe0, body=0xb7aeefcc, flags=<value optimized out>) at eval.c:6057
#103 0xb7eb73c1 in rb_call (klass=3081676620, recv=3082234240, mid=23817, argc=2, argv=0xbfd6fbe0, scope=0, self=3040972360) at eval.c:6153
#104 0xb7eb1cf1 in rb_eval (self=3040972360, n=<value optimized out>) at eval.c:3494
#105 0xb7eb44c8 in rb_eval (self=3040972360, n=<value optimized out>) at eval.c:3489
#106 0xb7eb2e99 in rb_eval (self=3040972360, n=<value optimized out>) at eval.c:3679
#107 0xb7eb5928 in rb_yield_0 (val=3040966940, self=3040972360, klass=0, flags=<value optimized out>, avalue=0) at eval.c:5079
#108 0xb7ec0594 in rb_yield (val=3040966940) at eval.c:5163
#109 0xb7e94718 in rb_ary_each (ary=3040971060) at array.c:1261
#110 0xb7eac362 in call_cfunc (func=0xb7e946e1 <rb_ary_each>, recv=3040971060, len=142799048, argc=0, argv=0x882f0c8) at eval.c:5754
#111 0xb7eb7280 in rb_call0 (klass=3083415080, recv=3040971060, id=4001, oid=4001, argc=0, argv=0x0, body=0xb7c92a04, flags=<value optimized out>) at eval.c:5906
#112 0xb7eb73c1 in rb_call (klass=3083415080, recv=3040971060, mid=4001, argc=0, argv=0x0, scope=0, self=3040972360) at eval.c:6153
#113 0xb7eb1cf1 in rb_eval (self=3040972360, n=<value optimized out>) at eval.c:3494
#114 0xb7eb508d in rb_eval (self=3040972360, n=<value optimized out>) at eval.c:3224
#115 0xb7eb7161 in rb_call0 (klass=3081676780, recv=3040972360, id=23657, oid=23657, argc=4, argv=0xbfd71b00, body=0xb7af2a78, flags=<value optimized out>) at eval.c:6057
#116 0xb7eb73c1 in rb_call (klass=3081676780, recv=3040972360, mid=23657, argc=4, argv=0xbfd71b00, scope=1, self=3040972360) at eval.c:6153
#117 0xb7eb1e1c in rb_eval (self=3040972360, n=<value optimized out>) at eval.c:3509
#118 0xb7eb363c in rb_eval (self=3040972360, n=<value optimized out>) at eval.c:3282
#119 0xb7eb2e54 in rb_eval (self=3040972360, n=<value optimized out>) at eval.c:3673
#120 0xb7eb7161 in rb_call0 (klass=3081676780, recv=3040972360, id=5393, oid=5393, argc=1, argv=0xbfd72ac0, body=0xb7af7988, flags=<value optimized out>) at eval.c:6057
#121 0xb7eb73c1 in rb_call (klass=3081676780, recv=3040972360, mid=5393, argc=1, argv=0xbfd72ac0, scope=0, self=3080819040) at eval.c:6153
#122 0xb7eb1cf1 in rb_eval (self=3080819040, n=<value optimized out>) at eval.c:3494
#123 0xb7eb44c8 in rb_eval (self=3080819040, n=<value optimized out>) at eval.c:3489
#124 0xb7eb2e99 in rb_eval (self=3080819040, n=<value optimized out>) at eval.c:3679
#125 0xb7eb5928 in rb_yield_0 (val=3040972360, self=3080819040, klass=0, flags=<value optimized out>, avalue=0) at eval.c:5079
#126 0xb7ec0594 in rb_yield (val=3040972360) at eval.c:5163
#127 0xb7e94718 in rb_ary_each (ary=3080925520) at array.c:1261
#128 0xb7eac362 in call_cfunc (func=0xb7e946e1 <rb_ary_each>, recv=3080925520, len=142799048, argc=0, argv=0x882f0c8) at eval.c:5754
#129 0xb7eb7280 in rb_call0 (klass=3083415080, recv=3080925520, id=4001, oid=4001, argc=0, argv=0x0, body=0xb7c92a04, flags=<value optimized out>) at eval.c:5906
#130 0xb7eb73c1 in rb_call (klass=3083415080, recv=3080925520, mid=4001, argc=0, argv=0x0, scope=0, self=3080819040) at eval.c:6153
#131 0xb7eb1cf1 in rb_eval (self=3080819040, n=<value optimized out>) at eval.c:3494
#132 0xb7eb508d in rb_eval (self=3080819040, n=<value optimized out>) at eval.c:3224
#133 0xb7eb4b95 in rb_eval (self=3080819040, n=<value optimized out>) at eval.c:3358
#134 0xb7eb7161 in rb_call0 (klass=3081236800, recv=3080819040, id=5393, oid=5393, argc=0, argv=0x0, body=0xb7a8007c, flags=<value optimized out>) at eval.c:6057
#135 0xb7eb73c1 in rb_call (klass=3081236800, recv=3080819040, mid=5393, argc=0, argv=0x0, scope=0, self=3080925820) at eval.c:6153
#136 0xb7eb1cf1 in rb_eval (self=3080925820, n=<value optimized out>) at eval.c:3494
#137 0xb7eb2e99 in rb_eval (self=3080925820, n=<value optimized out>) at eval.c:3679
#138 0xb7eb4b95 in rb_eval (self=3080925820, n=<value optimized out>) at eval.c:3358
#139 0xb7eb7161 in rb_call0 (klass=3081539780, recv=3080925820, id=23657, oid=23657, argc=0, argv=0x0, body=0xb7ad7034, flags=<value optimized out>) at eval.c:6057
#140 0xb7eb73c1 in rb_call (klass=3081539780, recv=3080925820, mid=23657, argc=0, argv=0x0, scope=0, self=3081233600) at eval.c:6153
#141 0xb7eb1cf1 in rb_eval (self=3081233600, n=<value optimized out>) at eval.c:3494
#142 0xb7eb4b95 in rb_eval (self=3081233600, n=<value optimized out>) at eval.c:3358
#143 0xb7eb7161 in rb_call0 (klass=3081233560, recv=3081233600, id=5393, oid=5393, argc=0, argv=0x0, body=0xb7a7e790, flags=<value optimized out>) at eval.c:6057
#144 0xb7eb73c1 in rb_call (klass=3081233560, recv=3081233600, mid=5393, argc=0, argv=0x0, scope=0, self=3083442520) at eval.c:6153
#145 0xb7eb1cf1 in rb_eval (self=3083442520, n=<value optimized out>) at eval.c:3494
#146 0xb7eb445a in rb_eval (self=3083442520, n=<value optimized out>) at eval.c:3504
#147 0xb7ec2fd7 in rb_load (fname=3080748660, wrap=0) at eval.c:7034
#148 0xb7ec3126 in rb_f_load (argc=1, argv=0xbfd77700) at eval.c:7102
#149 0xb7eac37d in call_cfunc (func=0xb7ec30cf <rb_f_load>, recv=3083442520, len=142799048, argc=1, argv=0x882f0c8) at eval.c:5751
#150 0xb7eb7280 in rb_call0 (klass=3083447460, recv=3083442520, id=10081, oid=10081, argc=1, argv=0xbfd77700, body=0xb7c8aa48, flags=<value optimized out>) at eval.c:5906
#151 0xb7eb73c1 in rb_call (klass=3083447460, recv=3083442520, mid=10081, argc=1, argv=0xbfd77700, scope=1, self=3083442520) at eval.c:6153
#152 0xb7eb1e1c in rb_eval (self=3083442520, n=<value optimized out>) at eval.c:3509
#153 0xb7ec2a43 in ruby_exec_internal () at eval.c:1643
#154 0xb7ec2a83 in ruby_exec () at eval.c:1663
#155 0xb7ec2ab8 in ruby_run () at eval.c:1673
#156 0x080487b5 in main (argc=142627032, argv=0x0, envp=0xb5e983a8) at main.c:48
-------------- next part --------------
A non-text attachment was scrubbed...
Name: editor.rb
Type: application/x-ruby
Size: 3302 bytes
Desc: not available
URL: <http://mail.kde.org/pipermail/kde-bindings/attachments/20090510/f5e65fe7/attachment.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: document_spec.rb
Type: application/x-ruby
Size: 4285 bytes
Desc: not available
URL: <http://mail.kde.org/pipermail/kde-bindings/attachments/20090510/f5e65fe7/attachment-0001.bin>


More information about the Kde-bindings mailing list