お世話になります。
鶴田と申します。

 組込み機器でLinuxを使用しているのですが、今回、常駐プロセスとして
Rubyで記述したプロセスを作成しましたが、instance_eval内で数分〜数日
に1回セグメンテーション異常が発生しています。
 同様な問題を経験されている方いないでしょうか、
 可能なら回避方法を教えて頂けないでしょうか。

 プログラムの動作
・instance_evalは10秒毎に百数回呼び出します。
  →定義された演算式に従ってタグの現在値を作成する為に使用しています。
    例えば tag[0]=tag[1]+tag[2]+1 の様な演算をしています。
・テストデータは一定である為、instance_evalの計算に渡す。値は常に同じです。
・セグメンテーション異常になるタグの位置は毎回異なります。
  →最大100タグの演算をしているのですが、発生位置は50タグ目〜60タグ目の何処かで出ていました。
・実行環境で、Ruby1.9.3p194をコンパイルして置換えてみましたが、同じ現象が発生しました。
・gdbでセグメンテーション異常位置バックトレース及び、コアダンプの解析を行いましたが
  発生しているのは常にst_lookup (table=0x407a802d, key=13048, value=0xbe83805c)
at st.c:330位置です。

-- 発生箇所でのバックトレース結果例
(gdb) bt
#0  0xb6c50f96 in ?? () from /lib/arm-linux-gnueabihf/libc.so.6
#1  0xb6c5ef8a in raise () from /lib/arm-linux-gnueabihf/libc.so.6
#2  0xb6c61428 in abort () from /lib/arm-linux-gnueabihf/libc.so.6
#3  0xb6e367b0 in rb_bug (fmt=0xb6f17ea4 "Segmentation fault") at error.c:284
#4  0xb6eaa246 in sigsegv (sig=<optimized out>, info=<optimized out>,
ctx=<optimized out>) at signal.c:609
#5  <signal handler called>
#6  st_lookup (table=0x407a802d, key=13048, value=0xbe83805c) at st.c:330
#7  0xb6ee2eec in search_method (id=13048, klass=123288) at vm_method.c:374
#8  rb_method_entry_get_without_cache (id=13048, klass=123288) at
vm_method.c:393
#9  rb_method_entry (klass=123288, id=13048) at vm_method.c:426
#10 0xb6ee9168 in vm_method_search (ic=0x1584460, klass=<optimized
out>, id=13048) at vm_insnhelper.c:1379
#11 vm_method_search (ic=0x1584460, klass=<optimized out>, id=13048)
at vm_exec.c:38
#12 vm_exec_core (th=<optimized out>, initial=<optimized out>) at insns.def:1014
#13 0xb6ee9c54 in vm_exec (th=0x11b88) at vm.c:1220
#14 0xb6ee9f16 in eval_string_with_cref (self=107160, src=11349936,
scope=4, cref=0xc07638, file=0xb6f1c558 "(eval)", line=1) at
vm_eval.c:1050
#15 0xb6eea2b6 in eval_under (src=11349936, line=1, file=0xb6f1c558
"(eval)", self=107160, under=12613272) at vm_eval.c:1257
#16 specific_eval (argc=<optimized out>, argv=<optimized out>,
klass=12613272, self=107160) at vm_eval.c:1295
#17 0xb6ee2152 in call_cfunc (func=0xb6eecd41 <rb_obj_instance_eval>,
recv=107160, len=-1, argc=<optimized out>, argv=0xb6a1fbbc) at
vm_insnhelper.c:317
#18 0xb6eec22a in vm_call_cfunc (me=0x63990, blockptr=<optimized out>,
recv=<optimized out>, num=<optimized out>, reg_cfp=0xb6a99f94,
th=0x11b88) at vm_insnhelper.c:404
#19 vm_call_method (th=0x11b88, cfp=0xb6a99f94, num=<optimized out>,
blockptr=<optimized out>, flag=<optimized out>, id=2904, me=0x63990,
recv=107160) at vm_insnhelper.c:534
#20 0xb6ee4e54 in vm_exec_core (th=<optimized out>, initial=<optimized
out>) at insns.def:1015
#21 0xb6ee9c54 in vm_exec (th=0x11b88) at vm.c:1220
#22 0xb6ee9f16 in eval_string_with_cref (self=1636104, src=11153736,
scope=4, cref=0x156f60, file=0xb6f1c558 "(eval)", line=1) at
vm_eval.c:1050
#23 0xb6eea2b6 in eval_under (src=11153736, line=1, file=0xb6f1c558
"(eval)", self=1636104, under=1404984) at vm_eval.c:1257
#24 specific_eval (argc=<optimized out>, argv=<optimized out>,
klass=1404984, self=1636104) at vm_eval.c:1295
#25 0xb6ee2152 in call_cfunc (func=0xb6eecd41 <rb_obj_instance_eval>,
recv=1636104, len=-1, argc=<optimized out>, argv=0xb6a1fb38) at
vm_insnhelper.c:317
#26 0xb6eec22a in vm_call_cfunc (me=0x63990, blockptr=<optimized out>,
recv=<optimized out>, num=<optimized out>, reg_cfp=0xb6a9a0c8,
th=0x11b88) at vm_insnhelper.c:404
#27 vm_call_method (th=0x11b88, cfp=0xb6a9a0c8, num=<optimized out>,
blockptr=<optimized out>, flag=<optimized out>, id=2904, me=0x63990,
recv=1636104) at vm_insnhelper.c:534
#28 0xb6ee4e54 in vm_exec_core (th=<optimized out>, initial=<optimized
out>) at insns.def:1015
#29 0xb6ee9c54 in vm_exec (th=0x11b88) at vm.c:1220
〜以下省略〜

実行環境
バージョン:Ruby1.9.3p194(Debianのサイトから取得したもの)
OS        :Debian 7.8
CPU       :ARM(armhf)
メモリ    :512MByte


よろしくお願いします。
−以上−