Skip to content
This repository has been archived by the owner on Nov 15, 2021. It is now read-only.

debugger fails to compile on fresh rbenv ruby 2.0.0-p0 #66

Closed
jgeiger opened this issue Feb 24, 2013 · 1 comment
Closed

debugger fails to compile on fresh rbenv ruby 2.0.0-p0 #66

jgeiger opened this issue Feb 24, 2013 · 1 comment

Comments

@jgeiger
Copy link

jgeiger commented Feb 24, 2013

I've got a fresh copy of ruby 2.0.0-p0 installed using rbenv. rbenv was installed using the basic github checkout method and the ruby-build was installed as a plugin to rbenv.

$ gem list
*** LOCAL GEMS ***
bigdecimal (1.2.0)
bundler (1.3.0.pre.8)
columnize (0.3.6)
debugger-linecache (1.1.2)
debugger-ruby_core_source (1.2.0)
io-console (0.4.2)
json (1.7.7)
minitest (4.6.1, 4.3.2)
pg (0.14.1)
psych (2.0.0)
rake (10.0.3, 0.9.6)
rdoc (4.0.0)
test-unit (2.5.4, 2.0.0.0)

When I attempt to install debugger I get the failure log below.

$ gem install debugger
Building native extensions. This could take a while...
ERROR: Error installing debugger:
ERROR: Failed to build gem native extension.

/Users/mac_user/.rbenv/versions/2.0.0-p0/bin/ruby extconf.rb
checking for rb_method_entry_t.called_id in method.h... no
checking for rb_control_frame_t.method_id in method.h... no
checking for rb_method_entry_t.called_id in method.h... no
checking for rb_control_frame_t.method_id in method.h... no
checking for rb_method_entry_t.called_id in method.h... yes
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
checking for struct iseq_line_info_entry in vm_core.h,iseq.h... yes
checking for if rb_iseq_compile_with_option was added an argument filepath... yes
creating Makefile

make
compiling breakpoint.c
compiling ruby_debug.c
ruby_debug.c:27:19: error: conflicting types for 'rb_iseq_compile_with_option'
RUBY_EXTERN VALUE rb_iseq_compile_with_option(VALUE src, VALUE file, VALUE filepath, VALUE line, VALUE opt);
^
/Users/mac_user/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/gems/debugger-ruby_core_source-1.2.0/lib/debugger/ruby_core_source/ruby-2.0.0-p0/vm_core.h:646:7: note: previous declaration is here
VALUE rb_iseq_compile_with_option(VALUE src, VALUE file, VALUE absolute_path, VALUE line, rb_block_t *base_block, VALUE opt);
^
ruby_debug.c:465: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:506:55: error: no member named 'bp' in 'struct rb_control_frame_struct'
debug_frame->info.runtime.bp = GET_THREAD()->cfp->bp;
~~~~~~~~~~~~~~~~~ ^
ruby_debug.c:529:13: warning: implicit conversion loses integer precision: 'long' to 'int' [-Wshorten-64-to-32]
s_len = RSTRING_LEN(source);
~ ^~~~~~~~~~~~~~~~~~~
/Users/mac_user/.rbenv/versions/2.0.0-p0/include/ruby-2.0.0/ruby/ruby.h:864:6: note: expanded from macro 'RSTRING_LEN'
RSTRING_EMBED_LEN(str) :
^~~~~~~~~~~~~~~~~~~~~~
/Users/mac_user/.rbenv/versions/2.0.0-p0/include/ruby-2.0.0/ruby/ruby.h:860:6: note: expanded from macro 'RSTRING_EMBED_LEN'
(long)((RBASIC(str)->flags >> RSTRING_EMBED_LEN_SHIFT) &
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ruby_debug.c:529:13: warning: implicit conversion loses integer precision: 'long' to 'int' [-Wshorten-64-to-32]
s_len = RSTRING_LEN(source);
~ ^~~~~~~~~~~~~~~~~~~
/Users/mac_user/.rbenv/versions/2.0.0-p0/include/ruby-2.0.0/ruby/ruby.h:865:28: note: expanded from macro 'RSTRING_LEN'
RSTRING(str)->as.heap.len)
~~~~~~~~~~~~~~~~~~~~~~^~~
ruby_debug.c:530: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:675:94: error: too few arguments to function call, expected 6, have 5
rb_str_new_cstr(""), rb_str_new_cstr("(exception catcher)"), Qnil, INT2FIX(1), Qfalse);
^
/Users/mac_user/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/gems/debugger-ruby_core_source-1.2.0/lib/debugger/ruby_core_source/ruby-2.0.0-p0/vm_core.h:646:1: note: 'rb_iseq_compile_with_option' declared here
VALUE rb_iseq_compile_with_option(VALUE src, VALUE file, VALUE absolute_path, VALUE line, rb_block_t *base_block, VALUE opt);
^
ruby_debug.c:698:9: error: no member named 'event_flags' in 'struct rb_thread_struct'
th->event_flags |= RUBY_EVENT_VM;
~~ ^
ruby_debug.c:698:24: error: use of undeclared identifier 'RUBY_EVENT_VM'
th->event_flags |= RUBY_EVENT_VM;
^
ruby_debug.c:727:16: error: use of undeclared identifier 'ID_ALLOCATOR'
if (mid == ID_ALLOCATOR) return;
^
ruby_debug.c:780:98: error: no member named 'bp' in 'struct rb_control_frame_struct'
if (debug_context->frames[debug_context->stack_size - 1].info.runtime.bp <= thread->cfp->bp)
~~~~~~~~~~~ ^
ruby_debug.c:952:104: error: no member named 'bp' in 'struct rb_control_frame_struct'
if (debug_context->frames[debug_context->stack_size].info.runtime.bp <= GET_THREAD()->cfp->bp)
~~~~~~~~~~~~~~~~~ ^
ruby_debug.c:846:29: warning: implicit conversion loses integer precision: 'VALUE' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
hit_count = INT2FIX(FIX2INT(rb_hash_aref(rdebug_catchpoints,
~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/mac_user/.rbenv/versions/2.0.0-p0/include/ruby-2.0.0/ruby/ruby.h:241:21: note: expanded from macro 'INT2FIX'

define INT2FIX(i) ((VALUE)(((SIGNED_VALUE)(i))<<1 | FIXNUM_FLAG))

                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

ruby_debug.c:1706:10: warning: implicit conversion loses integer precision: 'VALUE' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
return level;

ruby_debug.c:1756:8: warning: unused variable 'id' [-Wunused-variable]
ID id;
^
ruby_debug.c:1823:47: error: no member named 'filename' in 'struct rb_iseq_struct'
return(GET_FRAME->info.runtime.cfp->iseq->filename);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
ruby_debug.c:1861:26: error: no member named 'dfp' in 'struct rb_control_frame_struct'
val = (cfp->dfp - iseq->local_size + i);
~~~ ^
ruby_debug.c:1922:48: error: no member named 'dfp' in 'struct rb_control_frame_struct'
rb_hash_aset(hash, str, *(cfp->dfp - iseq->local_size + i));
~~~ ^
ruby_debug.c:1940:64: error: no member named 'dfp' in 'struct rb_control_frame_struct'
rb_hash_aset(hash, str, *(block_frame->dfp - iseq->local_table_size + i - 1));
~~~~~~~~~~~ ^
ruby_debug.c:2327:37: warning: implicit conversion loses integer precision: 'long' to 'int' [-Wshorten-64-to-32]
int frames = jump_cfp - cfp + 2;
~~~~~~ ~~~~~~~~~~~~~~~^~~
ruby_debug.c:2407:65: error: no member named 'filename' in 'struct rb_iseq_struct'
if ((cfp->iseq != NULL) && (rb_str_cmp(file, cfp->iseq->filename) == 0))
~~~~~~~~~ ^
ruby_debug.c:2409:40: error: no member named 'insn_info_size' in 'struct rb_iseq_struct'; did you mean 'line_info_size'?
for (i = 0; i < cfp->iseq->insn_info_size; i++)
^~~~~~~~~~~~~~
line_info_size
/Users/mac_user/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/gems/debugger-ruby_core_source-1.2.0/lib/debugger/ruby_core_source/ruby-2.0.0-p0/vm_core.h:223:12: note: 'line_info_size' declared here
size_t line_info_size;
^
ruby_debug.c:2411:32: error: no member named 'insn_info_table' in 'struct rb_iseq_struct'; did you mean 'line_info_table'?
if (cfp->iseq->insn_info_table[i].line_no != line)
^~~~~~~~~~~~~~~
line_info_table
/Users/mac_user/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/gems/debugger-ruby_core_source-1.2.0/lib/debugger/ruby_core_source/ruby-2.0.0-p0/vm_core.h:222:34: note: 'line_info_table' declared here
struct iseq_line_info_entry *line_info_table;
^
ruby_debug.c:2422:58: error: no member named 'insn_info_table' in 'struct rb_iseq_struct'; did you mean 'line_info_table'?
cfp->iseq->iseq_encoded + cfp->iseq->insn_info_table[i].position;
^~~~~~~~~~~~~~~
line_info_table
/Users/mac_user/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/gems/debugger-ruby_core_source-1.2.0/lib/debugger/ruby_core_source/ruby-2.0.0-p0/vm_core.h:222:34: note: 'line_info_table' declared here
struct iseq_line_info_entry *line_info_table;
^
ruby_debug.c:2395: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:2409: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++)
~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~
10 warnings and 16 errors generated.
make: *
* [ruby_debug.o] Error 1

Gem files will remain installed in /Users/mac_user/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/gems/debugger-1.3.3 for inspection.
Results logged to /Users/mac_user/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/gems/debugger-1.3.3/ext/ruby_debug/gem_make.out

@cldwalker
Copy link
Owner

Thanks for the report. This issue is already covered by #47. I want to encourage one central issue on 2.0 failures since currently 2.0 does not work

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants