2012-07-31 50 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 $

相关问题