Re: [PATCH] Allow spaces in filenames to load command

Jim Blandy
2005-12-07T03:13:04Z

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.