This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH] Allow spaces in filenames to load command
Here's what I think we should do. Folks who've worked a lot with the
target vector, please review.
First, I'd like to make the following change to target.h:
*** target.h 15 Sep 2005 22:46:32 -0700 1.76
--- target.h 06 Dec 2005 19:03:13 -0800
***************
*** 679,686 ****
/* Load an executable file into the target process. This is expected
to not only bring new code into the target process, but also to
! update GDB's symbol tables to match. */
extern void target_load (char *arg, int from_tty);
/* Look up a symbol in the target's symbol table. NAME is the symbol
--- 679,692 ----
/* Load an executable file into the target process. This is expected
to not only bring new code into the target process, but also to
! update GDB's symbol tables to match.
+ ARG contains command-line arguments, to be broken down with
+ buildargv (). The first non-switch argument is the filename to
+ load, FILE; the second is a number (as parsed by strtoul (..., ...,
+ 0)), which is an offset to apply to the load addresses of FILE's
+ sections. The target may define switches, or other non-switch
+ arguments, as it pleases. */
extern void target_load (char *arg, int from_tty);
/* Look up a symbol in the target's symbol table. NAME is the symbol
I believe generic_load (and all the targets that use it, which is most
of them) already meet that description.
Second, change gdbsim_load to actually call buildargv, error out if a
load address is present (saying it's not implemented yet), and pass
the filename to sim_load.
Third, change load_command to quote the result from get_exec_file if needed.
Fourth, drop the string address equality test from the patch.
Fifth, error out if there are further arguments we haven't recognized.
This moves towards a well-defined interface for target_load. I don't
think it's fair to ask you to go in and fix
freds-old-S100-bus-board-monitor.c; in the future, if people run into
problems with specific targets not expecting the quotation, we can fix
them, since we'll then have a person who can actually test the change.