2

Mountain Lion にアップグレードしたところ、IntelliJ 10 ruby​​-debugger が機能しなくなったようです。以下のエラーが表示されますが、これを修正する方法を実際に解釈することはできません。

/Users/kamilski81/.rvm/rubies/ruby-1.9.3-p194/bin/ruby extconf.rb
checking for rb_method_entry_t.body in method.h... no
checking for vm_core.h... no
/Users/kamilski81/.rvm/gems/ruby-1.9.3-p194@sc/gems/ruby_core_source-0.1.5/lib/ruby_core_source.rb:39: Use RbConfig instead of obsolete and deprecated Config.
checking for rb_method_entry_t.body in method.h... no
checking for vm_core.h... yes
checking for iseq.h... yes
checking for insns.inc... yes
checking for insns_info.inc... yes
checking for eval_intern.h... yes
creating Makefile

make
compiling breakpoint.c
compiling ruby_debug.c
ruby_debug.c:24:19: error: conflicting types for 'rb_iseq_compile_with_option'
RUBY_EXTERN VALUE rb_iseq_compile_with_option(VALUE src, VALUE file, VALUE line, VALUE opt); /* from iseq.c */
                  ^
/Users/kamilski81/.rvm/rubies/ruby-1.9.3-p194/include/ruby-1.9.1/ruby-1.9.3-p194/vm_core.h:505:7: note: previous declaration is here
VALUE rb_iseq_compile_with_option(VALUE src, VALUE file, VALUE filepath, VALUE line, VALUE opt);
      ^
ruby_debug.c:474:60: warning: implicit conversion loses integer precision: 'long' to 'int' [-Wshorten-64-to-32]
    return rb_funcall2(context, idAtLine, RARRAY_LEN(args) - 1, RARRAY_PTR(args) + 1);
           ~~~~~~~~~~~                    ~~~~~~~~~~~~~~~~~^~~
ruby_debug.c:538:13: warning: implicit conversion loses integer precision: 'long' to 'int' [-Wshorten-64-to-32]
    s_len = RSTRING_LEN(source);
            ^~~~~~~~~~~~~~~~~~~
/Users/kamilski81/.rvm/rubies/ruby-1.9.3-p194/include/ruby-1.9.1/ruby/ruby.h:674:6: note: expanded from macro 'RSTRING_LEN'
     RSTRING_EMBED_LEN(str) : \
     ^
/Users/kamilski81/.rvm/rubies/ruby-1.9.3-p194/include/ruby-1.9.1/ruby/ruby.h:670:6: note: expanded from macro 'RSTRING_EMBED_LEN'
     (long)((RBASIC(str)->flags >> RSTRING_EMBED_LEN_SHIFT) & \
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ruby_debug.c:538:13: warning: implicit conversion loses integer precision: 'long' to 'int' [-Wshorten-64-to-32]
    s_len = RSTRING_LEN(source);
            ^~~~~~~~~~~~~~~~~~~
/Users/kamilski81/.rvm/rubies/ruby-1.9.3-p194/include/ruby-1.9.1/ruby/ruby.h:675:28: note: expanded from macro 'RSTRING_LEN'
     RSTRING(str)->as.heap.len)
                           ^
ruby_debug.c:539:13: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
    f_len = strlen(file);
          ~ ^~~~~~~~~~~~
ruby_debug.c:684:98: error: too few arguments to function call, expected 5, have 4
        rb_str_new_cstr("begin\nend"), rb_str_new_cstr("(exception catcher)"), INT2FIX(1), Qfalse);
                                                                                                 ^
/Users/kamilski81/.rvm/rubies/ruby-1.9.3-p194/include/ruby-1.9.1/ruby-1.9.3-p194/vm_core.h:505:1: note: 'rb_iseq_compile_with_option' declared here
VALUE rb_iseq_compile_with_option(VALUE src, VALUE file, VALUE filepath, VALUE line, VALUE opt);
^
ruby_debug.c:1695:10: warning: implicit conversion loses integer precision: 'VALUE' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  return level;
  ~~~~~~ ^~~~~
ruby_debug.c:2310:37: warning: implicit conversion loses integer precision: 'long' to 'int' [-Wshorten-64-to-32]
        int frames = jump_cfp - cfp + 2;
            ~~~~~~   ~~~~~~~~~~~~~~~^~~
ruby_debug.c:2378:53: warning: comparison of integers of different signs: 'long' and 'unsigned long' [-Wsign-compare]
            if ((cfp->pc - cfp->iseq->iseq_encoded) >= (cfp->iseq->iseq_size - 1))
                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  ^   ~~~~~~~~~~~~~~~~~~~~~~~~
ruby_debug.c:2392:27: warning: comparison of integers of different signs: 'int' and 'size_t' (aka 'unsigned long') [-Wsign-compare]
            for (i = 0; i < cfp->iseq->insn_info_size; i++)
                        ~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~
8 warnings and 2 errors generated.
make: *** [ruby_debug.o] Error 1
4

5 に答える 5

9

そのため、問題の原因は linecache19 であることがわかりました。動作させるには -v 0.5.13 が必要です。

gem install ruby-debug-base19x -v 0.11.30.pre10
gem install ruby-debug-ide -v 0.4.17.beta14
curl -L "http://rubyforge.org/frs/download.php/75414/linecache19-0.5.13.gem" -o /tmp/linecache19-0.5.13.gem
gem install /tmp/linecache19-0.5.13.gem 

ただし、私の推測では、http://rubyforge.org/frs/?group_id=8883&release_id=46302から linecache19 -v 0.5.13 をダウンロードする必要があります。

幸運を。

于 2012-08-09T20:39:17.947 に答える
2

@ Kamilski81の回答のコマンドを使用しましたが、最後のコマンドは機能しませんでした。これが彼のコマンドで、最後のコマンドがダウンロードしてインストールするコマンドに置き換えられています。

gem install ruby-debug-base19x -v 0.11.30.pre10
gem install ruby-debug-ide -v 0.4.17.beta14
curl -L "http://rubyforge.org/frs/download.php/75414/linecache19-0.5.13.gem" -o /tmp/linecache19-0.5.13.gem
gem install /tmp/linecache19-0.5.13.gem 
于 2012-11-02T07:45:37.797 に答える
2

私はRubyMineを使用しているので、状況は少し異なるかもしれませんが、同じはずです..

次の方法で 2 つの gem をインストールする必要がありますgem install

archive-tar-minitar
ruby_core_source

次に、IDE でデバッガーを実行します。必要な宝石をそれ自体で構築する必要があります。エラーが発生した場合は、いくつかの gem が欠落している可能性があるため、エラーを注意深く読み、gem install でインストールしてください。

RubyMine 4.5 と私のアプリケーションを使用して、新しくインストールした Mountain Lion を試してみましたが、問題なく動作します。(私はXcode 4.4を使用しています)

于 2012-07-31T05:59:31.593 に答える
1

Re: linecache19 - https://github.com/robmathews/linecache19-0.5.13/issues/1に提出したので、今すぐ入手できます: $ gem install linecache19-patched Fetching: linecache19-patched-0.5.13.gem (100%) Successfully installed linecache19-patched-0.5.13 Couldn't find file to include 'VERSION' from lib/linecache19.rb Installing ri documentation for linecache19-patched-0.5.13 1 gem installed $

于 2014-11-14T23:52:45.363 に答える
-2

デバッガgemを使用します。

フォークの理由、デバッガーのreadmeを引用するには:

  • ruby-debug19メンテナがメンテナンスしていません:
    • ルビーコアからのパッチにもかかわらず、2年以上で宝石のリリースはありません!-2009年9月1日。
    • 動作している既知の1.9.3バージョンをリリースするリクエストは無視されました。
    • rubyforgeの問題に応答せず、githubの問題が開いていません。
  • 現在のインストールは苦痛です。rubyforgeからgemを手動でダウンロードし、コンパイラフラグを使用してインストールするか、rubyを再コンパイルする必要があります。
  • 将来のルビーのためにまともなルビーデバッガーが必要です!

私はほとんど問題なく新しいデバッガgemを使用しました。

于 2012-09-29T19:40:48.607 に答える