Mirror of the gdb mailing list
 help / color / mirror / Atom feed
From: Paul Smith <psmith@gnu.org>
To: gdb@sourceware.org
Subject: Debugging 32bit apps with 64bit target gdb
Date: Thu, 19 May 2011 20:18:00 -0000	[thread overview]
Message-ID: <1305836264.2776.76.camel@homebase> (raw)

Hi all;

Maybe this is a naive question.  I have an environment (x86) with both
32bit and 64bit applications running in it.  I would like to use the
same GDB binary to debug both types of applications.  Ideally, though,
GDB would be a 32bit application because sometimes I run on 32bit
systems (obviously the 64bit applications do not run and cannot be
debugged on those systems, but the 32bit ones can).

I will also be doing remote debugging (with gdbserver) from a 32bit host
to a 64bit target (at least I would like to be able to do that).

I configured GDB (7.2) with --host=i686-generic-linux-gnu and
--target=x86_64-generic-linux-gnu (and --enable-targets=all but I don't
know if GDB configure groks this flag).

This compiled just fine, but when I have a 32bit core file and I try to
access it with GDB, I get an error:

warning: Could not load shared library symbols for 8 libraries, e.g. /lib/tls/librt.so.1.
Use the "info sharedlibrary" command to see the complete listing.
Do you need "set solib-search-path" or "set sysroot"?
warning: Unable to find dynamic linker breakpoint function.
GDB will be unable to debug shared library initializers
and track explicitly loaded dynamic code.
Core was generated by `app32bit'.
Program terminated with signal 11, Segmentation fault.
#0  0x00b187a2 in ?? ()
#0  0x00b187a2 in ?? ()
#1  0x00d9c6f4 in ?? ()
#2  0x00000000 in ?? ()

and I can't get a backtrace or anything.  "info sharedlibrary" shows:

From        To          Syms Read   Shared Object Library
                        No          /lib/tls/librt.so.1
                        No          /usr/lib/libz.so.1
                        No          /lib/libdl.so.2
                        No          /lib/tls/libpthread.so.0
                        No          /lib/tls/libm.so.6
                        No          /lib/tls/libc.so.6
                        No          /lib/ld-linux.so.2
                        No          /lib/libgcc_s.so.1

which are all perfectly reasonable 32bit shared libs.

On the other hand, if I build a 32bit GDB (same version of code but
compiled on a 32bit Linux without the --target=x6_64-generic-linux-gnu
flag) then I get a perfectly usable backtrace for this identical
coredump on the same system.

Is what I want to do simply not possible?  Or am I missing some trick?
It seems to me that on the 64bit multiarch Linux systems I've used, the
GDB versions that come with them can debug 32bit applications.  Or am I
just imagining that this is possible?

-- 
-------------------------------------------------------------------------------
 Paul D. Smith <psmith@gnu.org>          Find some GNU make tips at:
 http://www.gnu.org                      http://make.mad-scientist.net
 "Please remain calm...I may be mad, but I am a professional." --Mad Scientist


             reply	other threads:[~2011-05-19 20:18 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-05-19 20:18 Paul Smith [this message]
2011-05-22 22:25 ` Paul Smith
2011-05-22 22:40   ` Mark Kettenis
2011-05-22 22:55     ` Paul Smith
2011-05-22 23:10       ` Mark Kettenis

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1305836264.2776.76.camel@homebase \
    --to=psmith@gnu.org \
    --cc=gdb@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox