Oops, I forgot to cc Justin when I said "should also go into 0.15"...
-- PMM On 25 July 2011 09:43, Peter Maydell <peter.mayd...@linaro.org> wrote: > Ping? Since this is a regression in our command line handling > I think it should also go into 0.15... > > thanks > -- PMM > > > On 18 July 2011 11:44, Peter Maydell <peter.mayd...@linaro.org> wrote: >> The code which prints the debug usage message on '-d ?' for *-user >> has to come before the check for "not enough arguments", so that >> "qemu-foo -d ?" prints the list of possible debug log items rather than >> the generic usage message. (This was inadvertently broken in commit >> c235d73.) >> >> Signed-off-by: Peter Maydell <peter.mayd...@linaro.org> >> --- >> NB that I've tested the linux-user part of this fix but don't have access to >> bsd/darwin to test those files; however the change is identical for all three >> files so it should be OK... >> >> bsd-user/main.c | 8 +++++--- >> darwin-user/main.c | 8 +++++--- >> linux-user/main.c | 11 ++++++----- >> 3 files changed, 16 insertions(+), 11 deletions(-) >> >> diff --git a/bsd-user/main.c b/bsd-user/main.c >> index 6018a41..a63b877 100644 >> --- a/bsd-user/main.c >> +++ b/bsd-user/main.c >> @@ -856,9 +856,6 @@ int main(int argc, char **argv) >> usage(); >> } >> } >> - if (optind >= argc) >> - usage(); >> - filename = argv[optind]; >> >> /* init debug */ >> cpu_set_log_filename(log_file); >> @@ -877,6 +874,11 @@ int main(int argc, char **argv) >> cpu_set_log(mask); >> } >> >> + if (optind >= argc) { >> + usage(); >> + } >> + filename = argv[optind]; >> + >> /* Zero out regs */ >> memset(regs, 0, sizeof(struct target_pt_regs)); >> >> diff --git a/darwin-user/main.c b/darwin-user/main.c >> index 35196a1..72307ad 100644 >> --- a/darwin-user/main.c >> +++ b/darwin-user/main.c >> @@ -809,9 +809,6 @@ int main(int argc, char **argv) >> usage(); >> } >> } >> - if (optind >= argc) >> - usage(); >> - filename = argv[optind]; >> >> /* init debug */ >> cpu_set_log_filename(log_file); >> @@ -830,6 +827,11 @@ int main(int argc, char **argv) >> cpu_set_log(mask); >> } >> >> + if (optind >= argc) { >> + usage(); >> + } >> + filename = argv[optind]; >> + >> /* Zero out regs */ >> memset(regs, 0, sizeof(struct target_pt_regs)); >> >> diff --git a/linux-user/main.c b/linux-user/main.c >> index 289054b..8976b60 100644 >> --- a/linux-user/main.c >> +++ b/linux-user/main.c >> @@ -3019,11 +3019,6 @@ int main(int argc, char **argv, char **envp) >> usage(); >> } >> } >> - if (optind >= argc) >> - usage(); >> - filename = argv[optind]; >> - exec_path = argv[optind]; >> - >> /* init debug */ >> cpu_set_log_filename(log_file); >> if (log_mask) { >> @@ -3041,6 +3036,12 @@ int main(int argc, char **argv, char **envp) >> cpu_set_log(mask); >> } >> >> + if (optind >= argc) { >> + usage(); >> + } >> + filename = argv[optind]; >> + exec_path = argv[optind]; >> + >> /* Zero out regs */ >> memset(regs, 0, sizeof(struct target_pt_regs)); >> >> -- >> 1.7.1