This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
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:
signature.asc
Description: This is a digitally signed message part.
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
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |