From: Andrew Cagney <cagney@gnu.org>
To: gdb@sources.redhat.com
Subject: 32-bit gcore on amd64
Date: Thu, 19 Feb 2004 23:12:00 -0000 [thread overview]
Message-ID: <403542D6.2070603@gnu.org> (raw)
This is more questions than answers. I'm trying to figure out how GDB
should generate 32-bit core files on amd64 (i.e., get gmake check
'RUNTESTFLAGS=--target_board=unix/-m32 gcore.exp' to pass). The problem
is, everything I look at feels wrong.
Here's the first backtrace:
#0 amd64_collect_native_gregset (regcache=0x808410, gregs=0x7fbfffead0,
regnum=-1) at /home/cygnus/cagney/GDB/src/gdb/amd64-nat.c:124
#1 0x0000000000450e16 in fill_gregset (gregsetp=0x808410,
regnum=-1073747248)
at /home/cygnus/cagney/GDB/src/gdb/x86-64-linux-nat.c:126
#2 0x000000000045803d in linux_do_thread_registers (obfd=0x87fc90, ptid=
{pid = 10494, lwp = 10494, tid = 0}, note_data=0x8b0960 "\005",
note_size=0x7fbfffed8c) at
/home/cygnus/cagney/GDB/src/gdb/linux-proc.c:180
This function is asking fill_gregset to populate an amd64 gregset_t. I
think it should be asking for the 32-bit gregset_t to be filled in.
#3 0x0000000000458227 in linux_do_registers (obfd=0x87fc90, ptid=
{pid = 10494, lwp = 0, tid = 0}, note_data=0x8b0960 "\005",
note_size=0x7fbfffed8c) at
/home/cygnus/cagney/GDB/src/gdb/linux-proc.c:250
#4 0x00000000004583f8 in linux_make_note_section (obfd=0x87fc90,
note_size=0x7fbfffed8c) at
/home/cygnus/cagney/GDB/src/gdb/linux-proc.c:302
Here, I'm thinking that if this is to be portable, this would have to be
an architecture method (also parameterized with the target).
#5 0x00000000004594d2 in gcore_command (args=0x0, from_tty=-1073747248)
at /home/cygnus/cagney/GDB/src/gdb/gcore.c:80
Now the second backtrace:
#0 elfcore_write_prstatus (abfd=0x87fc90, buf=0x8b0960 "\005",
bufsiz=0x7fbfffed8c, pid=10494, cursig=5, gregs=0x7fbfffead0)
at /home/cygnus/cagney/GDB/src/bfd/elf.c:7163
This function totally assumes that it's creating a 64-bit note section.
How does BFD figure out that it should instead use 32-bit note code?
#1 0x0000000000458058 in linux_do_thread_registers (obfd=0x87fc90, ptid=
{pid = 10494, lwp = 10494, tid = 0}, note_data=0x8b0960 "\005",
note_size=0x7fbfffed8c) at
/home/cygnus/cagney/GDB/src/gdb/linux-proc.c:181
#2 0x0000000000458227 in linux_do_registers (obfd=0x87fc90, ptid=
{pid = 10494, lwp = 0, tid = 0}, note_data=0x8b0960 "\005",
note_size=0x7fbfffed8c) at
/home/cygnus/cagney/GDB/src/gdb/linux-proc.c:250
#3 0x00000000004583f8 in linux_make_note_section (obfd=0x87fc90,
note_size=0x7fbfffed8c) at
/home/cygnus/cagney/GDB/src/gdb/linux-proc.c:302
#4 0x00000000004594d2 in gcore_command (args=0x0, from_tty=-1073747032)
at /home/cygnus/cagney/GDB/src/gdb/gcore.c:80
Andrew
As a somewhat amazing PS: bigcore.exp does pass 32-bit mode on AMD-64
->> the 32-bit read path is ok.
next reply other threads:[~2004-02-19 23:12 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-02-19 23:12 Andrew Cagney [this message]
2004-02-19 23:24 ` Daniel Jacobowitz
2004-02-20 0:17 ` Andrew Cagney
2004-02-21 2:25 ` Daniel Jacobowitz
2004-02-20 19:59 ` Mark Kettenis
2004-02-20 21:06 ` Andrew Cagney
2004-02-20 23:44 ` Mark Kettenis
2004-02-19 23:47 Ulrich Weigand
2004-02-20 18:56 ` Andrew Cagney
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=403542D6.2070603@gnu.org \
--to=cagney@gnu.org \
--cc=gdb@sources.redhat.com \
/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