Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ibf_load_iseq_complete in debase_internals not found #64

Closed
tiesel opened this issue Jul 31, 2018 · 13 comments
Closed

ibf_load_iseq_complete in debase_internals not found #64

tiesel opened this issue Jul 31, 2018 · 13 comments

Comments

@tiesel
Copy link

tiesel commented Jul 31, 2018

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
Copy link
Contributor

@tiesel What ruby version do you use?

@tiesel
Copy link
Author

tiesel commented Jul 31, 2018

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
Copy link
Contributor

@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
Copy link
Author

tiesel commented Jul 31, 2018

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
Copy link

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
Copy link
Author

tiesel commented Sep 14, 2018

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
Copy link
Contributor

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

@openscript
Copy link

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
Copy link

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

@tiesel
Copy link
Author

tiesel commented Nov 19, 2018

@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.

ViugiNick added a commit to ViugiNick/debase that referenced this issue Jan 16, 2019
valich pushed a commit that referenced this issue Jan 18, 2019
@tiesel
Copy link
Author

tiesel commented Mar 26, 2019

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
Copy link
Contributor

@tiesel Did you try 0.2.3.beta5?

@tiesel
Copy link
Author

tiesel commented Mar 29, 2019

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!

@valich valich closed this as completed Mar 29, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants