Patchwork user: Restore debug usage message for '-d ?' in user mode emulation

login
register
mail settings
Submitter Peter Maydell
Date July 18, 2011, 10:44 a.m.
Message ID <1310985849-6511-1-git-send-email-peter.maydell@linaro.org>
Download mbox | patch
Permalink /patch/105245/
State New
Headers show

Comments

Peter Maydell - July 18, 2011, 10:44 a.m.
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(-)
Peter Maydell - July 25, 2011, 8:43 a.m.
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
Peter Maydell - July 27, 2011, 9:38 a.m.
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
andrzej zaborowski - July 30, 2011, 5:52 a.m.
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

Patch

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));