From: Paul Smith <psmith@gnu.org>
To: gdb@sourceware.org
Subject: Re: Debugging 32bit apps with 64bit target gdb
Date: Sun, 22 May 2011 22:25:00 -0000 [thread overview]
Message-ID: <1306103110.2776.93.camel@homebase> (raw)
In-Reply-To: <1305836264.2776.76.camel@homebase>
Anyone have any help for me?
A short summary, I'm trying to see if I can build one GDB executable
with all these properties:
* Is a 32bit application so it can run on both 32bit and 64bit
systems
* Can debug 32bit applications
* Can debug 64bit applications (when run on a 64bit system
obviously)
* If I can get it to debug a 64bit core file when running on a
32bit system (with --sysroot pointing to a 64bit sysroot of
course) that would be awesome.
I'm only concerned with x86 architectures (for now?)
Is such a thing possible? Or should I just build two different GDB
binaries, one for 32bit and one for 64bit, and be satisfied?
On Thu, 2011-05-19 at 16:17 -0400, Paul Smith wrote:
> 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
next prev parent reply other threads:[~2011-05-22 22:25 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-05-19 20:18 Paul Smith
2011-05-22 22:25 ` Paul Smith [this message]
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=1306103110.2776.93.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