mirror of
https://github.com/qemu/qemu.git
synced 2024-11-24 19:33:39 +08:00
vl: Reset location after handling command-line arguments
After looping through all command-line arguments, error location info becomes obsolete, and any function calling error_report() will print misleading information. This breaks error reporting for some option handling, like: $ qemu-system-x86_64 -icount rr=x -vnc :0 qemu-system-x86_64: -vnc :0: Invalid icount rr option: x $ qemu-system-x86_64 -m size= -vnc :0 qemu-system-x86_64: -vnc :0: missing 'size' option value Fix this by resetting location info as soon as we exit the command-line handling loop. With this, replay_configure() and set_memory_options() won't print any location info yet, but at least they won't print incorrect information. Signed-off-by: Eduardo Habkost <ehabkost@redhat.com> Message-Id: <1455303747-19776-3-git-send-email-ehabkost@redhat.com> Reviewed-by: Laszlo Ersek <lersek@redhat.com> ["Do not insert code here" comment added to prevent regressions] Signed-off-by: Markus Armbruster <armbru@redhat.com>
This commit is contained in:
parent
34f405ae6d
commit
43fa1e0bd9
7
vl.c
7
vl.c
@ -4008,6 +4008,11 @@ int main(int argc, char **argv, char **envp)
|
||||
}
|
||||
}
|
||||
}
|
||||
/*
|
||||
* Clear error location left behind by the loop.
|
||||
* Best done right after the loop. Do not insert code here!
|
||||
*/
|
||||
loc_set_none();
|
||||
|
||||
replay_configure(icount_opts);
|
||||
|
||||
@ -4015,8 +4020,6 @@ int main(int argc, char **argv, char **envp)
|
||||
|
||||
set_memory_options(&ram_slots, &maxram_size, machine_class);
|
||||
|
||||
loc_set_none();
|
||||
|
||||
os_daemonize();
|
||||
|
||||
if (qemu_init_main_loop(&main_loop_err)) {
|
||||
|
Loading…
Reference in New Issue
Block a user