ruby-debug / debase

BSD 2-Clause "Simplified" License
209 stars 32 forks source link

ibf_load_iseq_complete in debase_internals not found #64

Closed tiesel closed 5 years ago

tiesel commented 6 years ago

Dear Team, the call to ibf_load_iseq_complete is not found in debase_internals.so on fedora 28. Source is debase_internals.c:647, version is tag v0.2.3.beta2 if I get this right. I can't find the definition in the code. Is there another library that should be linked? Thanks in advance Matthias

ViugiNick commented 6 years ago

@tiesel What ruby version do you use?

tiesel commented 6 years ago

It is ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux] Message is: /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:135:in `require': /home/mlt/.gem/ruby/extensions/x86_64-linux/2.5.0/debase-0.2.3.beta2/debase_internals.so: undefined symbol: ibf_load_iseq_complete - /home/mlt/.gem/ruby/extensions/x86_64-linux/2.5.0/debase-0.2.3.beta2/debase_internals.so (LoadError)

ViugiNick commented 6 years ago

@tiesel https://github.com/os97673/debase-ruby_core_source/blob/882e9c632348cbde5e7d5d04edd70b9627f29397/lib/debase/ruby_core_source/ruby-2.5.1-p57/iseq.h#L160 It seems that the problem is in linking and building. Could you clarify whether you use rvm/rbenv or system ruby?

tiesel commented 6 years ago

It's plain system ruby, latest version. ruby-2.5.1-93.fc28.x86_64 is the package name Output of rpm -qa:

rpm -qa | grep ruby

rubygem-multi_json-1.12.1-4.fc28.noarch rubygem-rb-inotify-0.9.7-5.fc28.noarch rubygem-hashicorp-checkpoint-0.1.5-1.fc28.noarch rubygem-mime-types-data-3.2016.0521-4.fc28.noarch rubygem-http-cookie-1.0.3-4.fc28.noarch rubygem-rdoc-6.0.3-2.fc28.noarch rubygem-fog-xml-0.1.2-5.fc28.noarch rubygem-unf_ext-0.0.7.5-1.fc28.x86_64 rubygems-2.7.6-93.fc28.noarch ruby-2.5.1-93.fc28.x86_64 rubygem-fog-libvirt-0.4.2-2.fc28.noarch rubygem-psych-3.0.2-93.fc28.x86_64 rubygem-domain_name-0.5.20180417-1.fc28.noarch ruby-devel-2.5.1-93.fc28.x86_64 rubygem-childprocess-0.5.9-4.fc28.noarch rubygem-excon-0.60.0-2.fc28.noarch rubygem-i18n-0.7.0-6.fc28.noarch rubygem-net-scp-1.2.1-8.fc28.noarch rubygem-fog-json-1.0.2-5.fc28.noarch rubygem-io-console-0.4.6-93.fc28.x86_64 rubygem-listen-3.1.5-4.fc28.noarch rubygem-fog-core-1.43.0-4.fc28.noarch rubygem-erubis-2.7.0-16.fc28.noarch rubygem-did_you_mean-1.2.0-93.fc28.noarch rubygem-ruby-libvirt-0.7.1-1.fc28.x86_64 rubygem-openssl-2.1.0-93.fc28.x86_64 rubygem-nokogiri-1.8.3-1.fc28.x86_64 rubygem-mime-types-3.1-4.fc28.noarch rubygems-devel-2.7.6-93.fc28.noarch rubygem-ffi-1.9.23-1.fc28.x86_64 rubygem-formatador-0.2.5-5.fc28.noarch rubygem-log4r-1.1.10-8.fc28.noarch rubygem-rest-client-2.0.0-4.fc28.noarch rubygem-builder-3.2.3-4.fc28.noarch rubygem-bigdecimal-1.3.4-93.fc28.x86_64 rubygem-unf-0.1.4-11.fc28.noarch rubypick-1.1.1-8.fc28.noarch ruby-irb-2.5.1-93.fc28.noarch ruby-libs-2.5.1-93.fc28.x86_64 rubygem-json-2.1.0-105.fc28.x86_64 rubygem-net-ssh-4.2.0-2.fc28.noarch rubygem-netrc-0.11.0-3.fc28.noarch rubygem-net-sftp-2.1.2-7.fc28.noarch

mpokrywka commented 6 years ago

Commit "monkeypatch load_iseq for debugger to work along with bootsnap" will not work with system ruby, because symbol "ibf_load_iseq_complete" is not exported (I checked my system's /usr/lib/x86_64-linux-gnu/libruby-2.5.so.2.5 )

tiesel commented 5 years ago

So, finally I was able to solve the problem -- at least for me (Fedora 28, newest patches): gem uninstall --user-install debase selected debase-0.2.3.beta2 , so that debase-0.2.2 is the newest version. That obviously doesn't require ibf_load_iseq_complete.

ViugiNick commented 5 years ago

@tiesel @mpokrywka Looks like it can be fixed for the 2.5.2 version, are you OK with using it?

openscript commented 5 years ago

I ran in the same problem with ruby 2.5.3p105 (2018-10-18 revision 65156) [x86_64-linux] as a system installation:

/usr/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require': /home/rdex/.gem/ruby/2.5.0/gems/debase-0.2.3.beta2/lib/debase_internals.so: undefined symbol: ibf_load_iseq_complete - /home/rdex/.gem/ruby/2.5.0/gems/debase-0.2.3.beta2/lib/debase_internals.so (LoadError)

Currently I don't have a solution for debase-0.2.3.beta2 and Ruby 2.5.3p105.

openscript commented 5 years ago

I've switched to asdf. As already mentioned by @ViugiNick it works with a non-system ruby installation.

tiesel commented 5 years ago

@ViugiNick Sorry I come back so late: This is perfectly o.k. with me. It was mainly a lack of ruby Gemfile / rubymine skills at my site and I am now able to compose a gems / versions collection and debug with it. So go ahead, if you didn't already.

tiesel commented 5 years ago

Under F29, using vanilla ruby 2.5.3p105 (2018-10-18 revision 65156) [x86_64-linux] this still persists. But fortunately, the solution still works: gem uninstall --user-install debase selected debase-0.2.3.beta2 , so that debase-0.2.2 is the newest version. Voila, debugging works again.

ViugiNick commented 5 years ago

@tiesel Did you try 0.2.3.beta5?

tiesel commented 5 years ago

Very nice! The debugger works with debase:0.2.3.beta5 here on Fedora 29, vanilla ruby 2.5.3p105 (2018-10-18 revision 65156) [x86_64-linux] Thanks a lot!