From: Mike Frysinger <vapier@gentoo.org>
To: Daniel Jacobowitz <drow@false.org>
Cc: gdb-patches@sourceware.org
Subject: Re: the "load" command and the .bss section
Date: Mon, 28 Apr 2008 08:34:00 -0000 [thread overview]
Message-ID: <200804271745.37849.vapier@gentoo.org> (raw)
In-Reply-To: <20080427135600.GA9356@caradoc.them.org>
[-- Attachment #1.1: Type: text/plain, Size: 1442 bytes --]
On Sunday 27 April 2008, Daniel Jacobowitz wrote:
> On Sun, Apr 27, 2008 at 05:09:31AM -0400, Mike Frysinger wrote:
> > i was doing a new board port using jtag and so was leveraging the "load"
> > command to setup the initial ELF in the relevant memory regions. things
> > kept crashing on me and then i realized that the loading process wasnt
> > actually zeroing out the bss. is there a reason for this ? i googled
> > and flipped through the manual, but the details on what exactly the
> > "load" command is supposed to do is a bit on sketchy side. from what i
> > can tell from the gdb source code and the actual output from running the
> > command, it walks the section headers (rather than the program headers ?)
> > and loads up everything that is in the file. since the bss section
> > doesnt actually exist in the file and is only allocated, that is why it
> > gets skipped ?
>
> Load puts things at their LMA rather than their VMA. So it assumes
> that whatever sets up load -> virtual also handles bss; it's more like
> flash programming than like the Linux kernel's loader. Heck,
> sometimes it is flash programming...
ah, now that i know the intentions, may i suggest the following to the
documentation.
-mike
2008-04-27 Mike Frysinger <vapier@gentoo.org>
* gdb.texinfo (Commands for Managing Targets): Clarify load command
wrt load/virtual addresses and handling of allocated sections.
[-- Attachment #1.2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 827 bytes --]
[-- Attachment #2: gdb-clarify-load.patch --]
[-- Type: text/x-diff, Size: 1278 bytes --]
Index: gdb.texinfo
===================================================================
RCS file: /cvs/src/src/gdb/doc/gdb.texinfo,v
retrieving revision 1.487
diff -u -p -r1.487 gdb.texinfo
--- gdb.texinfo 24 Apr 2008 12:09:49 -0000 1.487
+++ gdb.texinfo 27 Apr 2008 21:43:57 -0000
@@ -12795,10 +12795,12 @@ If your @value{GDBN} does not have a @co
execute it gets the error message ``@code{You can't do that when your
target is @dots{}}''
-The file is loaded at whatever address is specified in the executable.
-For some object file formats, you can specify the load address when you
-link the program; for other formats, like a.out, the object file format
-specifies a fixed address.
+The file is loaded according to the load addresses (rather than virtual) as
+is specified in the executable. It is expected that the target system will
+do the actual relocation, and in the process, handle such things as setup of
+allocated sections (e.g. the bss). For some object file formats, you can
+specify the load address when you link the program; for other formats, like
+a.out, the object file format specifies a fixed address.
@c FIXME! This would be a good place for an xref to the GNU linker doc.
Depending on the remote side capabilities, @value{GDBN} may be able to
next parent reply other threads:[~2008-04-27 21:46 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <200804270509.34308.vapier@gentoo.org>
[not found] ` <20080427135600.GA9356@caradoc.them.org>
2008-04-28 8:34 ` Mike Frysinger [this message]
2008-04-28 8:39 ` Eli Zaretskii
2008-04-28 14:07 ` Mike Frysinger
2008-04-28 22:54 ` Eli Zaretskii
2008-04-28 19:08 ` Michael Snyder
2008-04-29 1:10 ` Eli Zaretskii
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=200804271745.37849.vapier@gentoo.org \
--to=vapier@gentoo.org \
--cc=drow@false.org \
--cc=gdb-patches@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