2012-07-31 89 views
2

我剛剛升級到山獅,似乎IntelliJ 10的紅寶石調試器不再起作用。我得到下面的錯誤,但不能真正解釋如何解決這個問題,任何想法?如何在Mountain Lion上爲IntelliJ安裝ruby-debug-base19x?

/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/[email protected]/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 

回答

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 

然而,我的猜測是,linecache19 -v 0.5.13將需要從http://rubyforge.org/frs/?group_id=8883&release_id=46302

祝你好運下載。

+2

完美的作品!我不知道你認爲@#$%是如何完美組合的版本,但是你爲我節省了很多時間和頭痛。再次感謝。 – zwickilton 2012-09-05 14:29:19

+0

謝謝老兄,你搖滾。我發佈了一個替代你最後命令的答案。 – RyanHennig 2012-11-02 07:46:33

+0

你在開玩笑嗎?我在這上面花了2個小時,你想出了那些魔術組合? – nicolas 2013-03-24 16:51:16

2

我使用的RubyMine,所以情況可能會有所不同,但應該是相同..

您需要通過gem install安裝兩個寶石:

archive-tar-minitar 
ruby_core_source 

然後,在IDE,運行調試器。它應該建立必要的寶石。如果您遇到一些錯誤,那麼一些寶石可能會丟失,所以仔細閱讀錯誤並通過gem install安裝它們。

我試着用新鮮安裝的Mountain Lion與RubyMine 4.5和我的應用程序,它工作沒有問題。 (我使用Xcode 4.4)

+1

我跑這裏面的RubyMine,它工作,然後在IntelliJ 10.4內部嘗試它,它又開始工作。我認爲RubyMine可能已經做了一些補丁...... – Kamilski81 2012-07-31 15:50:57

-2

使用debugger寶石。

原因叉,引述debugger readme

  • 紅寶石debug19維護不維護:
    • 儘管紅寶石核心補丁,沒有創業板發行的2年! - 9/1/09。
    • 請求釋放一個已知的工作1.9.3版本已被忽略。
    • 不響應rubyforge問題,並沒有打開github問題。
  • 當前安裝是痛苦的。需要manually downloading gems from rubyforge和安裝編譯器標誌或recompiling ruby
  • 我們需要一個體面的紅寶石調試器爲未來的紅寶石!

我已經使用了新的調試器gem,問題很少。

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 
+0

curl無法爲我「拒絕連接」 – 2014-11-13 19:11:38

1

回覆: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 $

相關問題