質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

メモリリーク

メモリリークは、プログラムファイルがメモリの解放に失敗した時に起こります。

Q&A

1回答

4085閲覧

rubyでsegmentation fault

退会済みユーザー

退会済みユーザー

総合スコア0

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

メモリリーク

メモリリークは、プログラムファイルがメモリの解放に失敗した時に起こります。

1グッド

1クリップ

投稿2015/12/18 19:18

rubyプログラムでbenchmarkをとっていたところ以下のようなエラーがでてしまい実行ができませんでした.
原因としては関数内でnewをしているのでその関数を複数回呼び出した時にエラーが起こってしまっているのかなと思います.
newした変数のメモリを解放することはできるでしょうか?

  • C level backtrace information -------------------------------------------

/usr/lib/x86_64-linux-gnu/libruby-2.1.so.2.1(+0x18b237) [0x7f7c70a88237]
/usr/lib/x86_64-linux-gnu/libruby-2.1.so.2.1(+0x18b303) [0x7f7c70a88303]
/usr/lib/x86_64-linux-gnu/libruby-2.1.so.2.1(+0x6cd93) [0x7f7c70969d93]
/usr/lib/x86_64-linux-gnu/libruby-2.1.so.2.1(rb_bug+0xb3) [0x7f7c7096a403]
/usr/lib/x86_64-linux-gnu/libruby-2.1.so.2.1(+0x1214e3) [0x7f7c70a1e4e3]
/lib/x86_64-linux-gnu/libc.so.6(+0x36d40) [0x7f7c7056ed40] conversion_wrap.cxx:9359
/home/rock/evaluation/conversion.so(+0x3d56d) [0x7f7c6ed4856d] ../include/GraphContainer.h:634
/usr/lib/x86_64-linux-gnu/libruby-2.1.so.2.1(+0x175165) [0x7f7c70a72165]
/usr/lib/x86_64-linux-gnu/libruby-2.1.so.2.1(+0x17e704) [0x7f7c70a7b704]
/usr/lib/x86_64-linux-gnu/libruby-2.1.so.2.1(+0x1835dd) [0x7f7c70a805dd]
/usr/lib/x86_64-linux-gnu/libruby-2.1.so.2.1(rb_iseq_eval_main+0x7f) [0x7f7c70a81bff]
/usr/lib/x86_64-linux-gnu/libruby-2.1.so.2.1(+0x7047f) [0x7f7c7096d47f]
/usr/lib/x86_64-linux-gnu/libruby-2.1.so.2.1(ruby_exec_node+0x1d) [0x7f7c7096ee4d]
/usr/lib/x86_64-linux-gnu/libruby-2.1.so.2.1(ruby_run_node+0x1e) [0x7f7c70970c1e]
ruby() [0x40086b]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf5) [0x7f7c70559ec5]
ruby() [0x400899]

-- Other runtime information -----------------------------------------------

  • Loaded script:

  • Loaded features:

    0 enumerator.so
    1 /usr/lib/x86_64-linux-gnu/ruby/2.1.0/enc/encdb.so
    2 /usr/lib/x86_64-linux-gnu/ruby/2.1.0/enc/trans/transdb.so
    3 /usr/lib/x86_64-linux-gnu/ruby/2.1.0/rbconfig.rb
    4 /usr/lib/ruby/2.1.0/rubygems/compatibility.rb
    5 /usr/lib/ruby/2.1.0/rubygems/defaults.rb
    6 /usr/lib/ruby/2.1.0/rubygems/deprecate.rb
    7 /usr/lib/ruby/2.1.0/rubygems/errors.rb
    8 /usr/lib/ruby/2.1.0/rubygems/version.rb
    9 /usr/lib/ruby/2.1.0/rubygems/requirement.rb
    10 /usr/lib/ruby/2.1.0/rubygems/platform.rb
    11 /usr/lib/ruby/2.1.0/rubygems/basic_specification.rb
    12 /usr/lib/ruby/2.1.0/rubygems/stub_specification.rb
    13 /usr/lib/ruby/2.1.0/rubygems/util/stringio.rb
    14 /usr/lib/ruby/2.1.0/rubygems/specification.rb
    15 /usr/lib/ruby/2.1.0/rubygems/exceptions.rb
    16 /usr/lib/ruby/vendor_ruby/rubygems/defaults/operating_system.rb
    17 /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_gem.rb
    18 thread.rb
    19 /usr/lib/x86_64-linux-gnu/ruby/2.1.0/thread.so
    20 /usr/lib/ruby/2.1.0/monitor.rb
    21 /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb
    22 /usr/lib/ruby/2.1.0/rubygems.rb
    23 /home/rock/evaluation/conversion.so
    24 /usr/lib/x86_64-linux-gnu/ruby/2.1.0/socket.so
    25 /usr/lib/ruby/2.1.0/socket.rb
    26 /usr/lib/ruby/2.1.0/benchmark.rb

  • Process memory map:

00400000-00401000 r-xp 00000000 fc:00 54536233 /usr/bin/ruby2.1
00600000-00601000 r--p 00000000 fc:00 54536233 /usr/bin/ruby2.1
00601000-00602000 rw-p 00001000 fc:00 54536233 /usr/bin/ruby2.1
01ae0000-02067000 rw-p 00000000 00:00 0

[NOTE]
You may have encountered a bug in the Ruby interpreter or extension libraries.
Bug reports are welcome.
For details: http://www.ruby-lang.org/bugreport.html

Aborted (core dumped)

DrqYuto👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

Ruby内でどんなコードを書こうとも、C言語レベルのエラーが出てはおかしいです(どんなコードを書いたとしても、Rubyレベルで例外を投げて終了すべきです)。メッセージにも、「You may have encountered a bug in the Ruby interpreter or extension libraries. 」とあります。

コードを書き換えたり、不要なGemを外したりして、Rubyが落ちるのを再現できる最小限のコードにした上で、完全にRuby本体だけで起きるならRubyのバグ管理システムへ、特定のGemが原因になるならそのGemのIssueとして報告してみましょう。

投稿2015/12/19 00:44

maisumakun

総合スコア145184

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問