Message ID | 1310985849-6511-1-git-send-email-peter.maydell@linaro.org |
---|---|
State | Accepted |
Commit | 4b5dfd8246321d2cdca0508f6837a681f7873f43 |
Headers | show |
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.maydell@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.maydell@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
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.maydell@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.maydell@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.maydell@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
On 18 July 2011 12:44, Peter Maydell <peter.maydell@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.) I pushed this patch, thanks. Cheers
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));
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.maydell@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(-)