Friends,

I started posting about this matter in another thread, but that was perhaps in bad taste. I have been told by some of the Valgrind folks that the current Solus package for the program is incomplete - here is the dialogue from IRC:

<Thaeris> Hello there, folks!
<Thaeris> ...Would someone mind giving me a few pointers on using Valgrind?
<Thaeris> Essentially, I have a 32-bit application that is not running in Solus linux, and I'd like to determine where it's segfaulting
<Thaeris> I am in turn getting these responses from Valgrind when I call the program and give the following arguments:
<Thaeris> **@** /Desktop/Space Combat 140 $ valgrind -v --log-file=./VALTEST ./"Space Combat 140"
<Thaeris> valgrind: failed to start tool 'memcheck' for platform 'x86-linux': No such file or directory
<Thaeris> **@** /Desktop/Space Combat 140 $ valgrind -v ./"Space Combat 140"
<Thaeris> valgrind: failed to start tool 'memcheck' for platform 'x86-linux': No such file or directory
<Thaeris> ...Kind of tricky to run the program if I can't get it started!
<tomhughes> well your valrgrind installation is apparently broken/incomplete
<tomhughes> I'm not familiar with that distribution so can't help in any detail
<tomhughes> but at a minimum it sounds like you don't have the 32 bit tools installed
<Thaeris> I have reason to believe there is a lack of the 32-bit version of the gcc library in the software repository
<Thaeris> However, can that library still work with 32-bit programs via the -m32 flag, or something like that?
<tomhughes> that's not relevant - the tools are statically linked
<tomhughes> what you're missing is a file called /usr/lib64/valgrind/memcheck-x86-linux or similar (depending on exactly where your distro puts things)
<tomhughes> you likely have a memcheck-amd64-linux but not the 32 bit version.

...I can indeed confirm that I have memcheck-amd64-linux installed in /usr/lib64/valgrind directory. Furthermore, I can also confirm that there is no such memcheck-x86-linux application in this directory, and I'm not sure where I'd find it, either...

That said, I'm not certain I can do much to test the application in question with Valgrind at this time. Should a 32-bit version be added such that 32-bit applications can be tested, or am I reading this situation incorrectly?

    Thaeris /usr/lib64/valgrind/memcheck-amd64-linux in valgrind package.

    Edit: Try run sudo ln -sfv /usr/lib64/valgrind/memcheck-amd64-linux /usr/lib64/valgrind/memcheck-x86-linux so it links what they're looking for to what we have.

    Yes, memcheck-amd64-linux is in the package, but memcheck-x86-linux is not, or at least so far as I can tell. With that particular item missing, I cannot run memcheck on the application. I was told specifically that our distribution of Valgrind is somewhat incomplete on those grounds.

      13 days later

      Justin,

      Sorry for getting back to you so late. Aside from the typical excuses, I also needed to learn a bit more about the commands you asked me to try out for this one, and how to reverse them if necessary.

      In my case, I moved the current working directory to the Valgrind folder before creating the symbolic link (to cut down on typing in the terminal). I then entered the following:

      *****@***** /usr/lib64/valgrind $ sudo ln -sv ./memcheck-amd64-linux ./memcheck-x86-linux
      './memcheck-x86-linux' -> './memcheck-amd64-linux'

      ...The -f flag was unnecessary here as no previous symbolic link was in conflict with the one being created, if my green understanding of the ln command is correct. Regardless, the symbolic link was created all-the-same.

      Upon running Valgrind with the program of interest, here was the entry and output of the operation:

      *****@***** ~/Desktop/Space Combat 140 $ valgrind -v ./"Space Combat 140"
      valgrind: wrong ELF executable class (eg. 32-bit instead of 64-bit)
      valgrind: ./Space Combat 140: cannot execute binary file

      ...I think this is conclusive with regards to whether the Solus Valgrind package is complete or not. It's not that it's wrong, per-se, but I am convinced it lacks the files to tackle some of the older 32-bit applications. From the viewpoint of a progressive 64-bit operating system, this may not be a problem... unless you are working with an older application.

      Regarding my... project: another commentator suggested using strace to try and figure out the problem, and this has been delivering a few results so far. For instance, I assume that when you tried the program, you had the mesalib32-bit package installed already. I did not, but enough clues came up from strace to get the program to the point that the blue start-up GUI for the application appears with a dialogue box. Clicking the box of course causes a segfault, but there you go.

      Anyway, the above is OT, but yes, I am confident in stating that Solus' Valgrind cannot evaluate 32-bit applications due to being an incomplete package.

        Thaeris Quite possibly vala needs to be built against some 32bit libs to be able to analyze 32bit compiled code. Well done on the process to get it to the menu.