Debugging 32-bit applications on an x86_64 system

Siddhesh Poyarekar siddhesh.poyarekar at gmail.com
Sat Jun 19 07:18:30 UTC 2010


On Sat, Jun 19, 2010 at 1:01 AM, Jonathan Ryshpan <jonrysh at pacbell.net> wrote:
> I'm trying to debug inspect googleearth (a 32-bit application) using gdb
> on an x86_64 system.  Gdb starts OK, but when I attempt to run
> googleearth, it reports that a large number of debuginfo packages are
> missing with messages like:
>        Missing separate debuginfo for /lib/libexpat.so.1
>        Try: yum --disablerepo='*' --enablerepo='*-debuginfo' install /usr/lib/debug/.build-id/f4/6a67411322c129b167dd758b8ab9cbd2e4ddf9.debug
> When I attempt to run yum to carry this out, yum produces error messages
> like:
>        file /usr/lib/debug/usr/bin/xmlwf.debug from install of expat-debuginfo-2.0.1-10.fc13.i686 conflicts with file from package expat-debuginfo-2.0.1-10.fc13.x86_64
> Apparently, the debug info for the *library* /lib/libexpat.so.1 is
> packaged in the same rpm with the debug info for the *executable* xmlwf.
> And since executables on x86_64 system are not segregated by execution
> model (32-bit vs. 64-bit) there is a file name conflict.
>
> (A question) Is there any way to load the debug info for these 32-bit
> library without removing the debug info for 64-bit libraries?  This
> would be tedious, since there are about 100 64-bit debug packages on the
> system currently.

You could download the debuginfo rpm, decompress it using rpm2cpio and
the load up the program with LD_LIBRARY_PATH pointing to the location
where you decompressed it.

And you also ought to be reporting this as a bug, since ideally the
package should be split up to separate xmlwf from expat. Maybe
discussion on the fedora devel list would make this clearer:

https://admin.fedoraproject.org/mailman/listinfo/devel

> (A suggestion) On x86_64 systems 32-bit executables and 64-bit
> executables should be in separate directories: say /usr/bin32
> and /usr/bin/64.  An addition directory /usr/bin would contain
> (symbolic) links to default executables.  (I think this would keep all
> current shell scripts, etc., running.)  Maybe the same file structure
> -- /usr/lib32 /usr/lib64 and /usr/lib -- would also be good for
> libraries.
>

No, because the way forward is to eliminate the need for 32 bit
binaries on 64 bit systems. The libraries are there now because we
still have a lot of programs that are built as 32 bit only (flash).


-- 
Siddhesh Poyarekar
http://siddhesh.in


More information about the users mailing list