Встраивание отладки Ruby и гемов с помощью - PullRequest
0 голосов
/ 29 января 2012

Встраивание Ruby в C - плохо документированная часть программирования на Ruby. Когда я вызываю Ruby из кода C и делаю что-то не так на стороне Ruby, я получаю ошибку в этой форме:

<dummy toplevel>:17: [BUG] Segmentation fault
ruby 1.9.0 (2008-10-04 revision 19669) [i486-linux]

-- control frame ----------
c:0002 p:---- s:0004 b:0004 l:000003 d:000003 CFUNC  :require
c:0001 p:0000 s:0002 b:0002 l:000001 d:000001 TOP    <dummy toplevel>:17
---------------------------
DBG> : ":0:in `require'"
-- backtrace of native function call (Use addr2line) --
0x231316
0x1515e7
0x15166a
0x1da144
0x8e6410
0x3ca46c
0x1530da
0x153473
0x15009b
0x156127
0x1566c6
0x21ef73
0x22b56a
0x22c4a5
0x80540fb
0x80544ee
0x3b6bd6
0x8049721
-------------------------------------------------------

Мой первый вопрос: возможно ли получить более сложное сообщение об ошибке? Что означает Use addr2line? Или как найти из этой трассировки стека, где моя ошибка?

Второй вопрос касается использования драгоценных камней во встроенном Ruby. Когда я использую его в классической форме Ruby require name_of_gem, камень не найден. Когда я использую абсолютный путь к одному файлу gem, это нормально, но когда gem состоит из нескольких файлов, я не смог его использовать.

...