aboutsummaryrefslogtreecommitdiff
path: root/vl.c
diff options
context:
space:
mode:
authorMarkus Armbruster <armbru@redhat.com>2012-02-07 15:09:13 +0100
committerAnthony Liguori <aliguori@us.ibm.com>2012-02-24 09:06:58 -0600
commitef0c4a0d89ff78bf1d0c257fb3c5613727dd8194 (patch)
tree6566b4533b19506f0e0363900e4c034a8bde7ac4 /vl.c
parentd9a5954dbff6c8149d02f6518726bd50d42cea42 (diff)
gdbstub: Error locations for -gdb
Stash away the option argument with add_device_config(), so we still have its location when we get around to parsing it. This doesn't improve any messages I can see just yet, but that'll change shortly. Signed-off-by: Markus Armbruster <armbru@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Diffstat (limited to 'vl.c')
-rw-r--r--vl.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/vl.c b/vl.c
index 841d1e1414..641df593cb 100644
--- a/vl.c
+++ b/vl.c
@@ -1857,6 +1857,7 @@ struct device_config {
DEV_PARALLEL, /* -parallel */
DEV_VIRTCON, /* -virtioconsole */
DEV_DEBUGCON, /* -debugcon */
+ DEV_GDB, /* -gdb, -s */
} type;
const char *cmdline;
Location loc;
@@ -2182,7 +2183,6 @@ int qemu_init_main_loop(void)
int main(int argc, char **argv, char **envp)
{
- const char *gdbstub_dev = NULL;
int i;
int snapshot, linux_boot;
const char *icount_option = NULL;
@@ -2607,10 +2607,10 @@ int main(int argc, char **argv, char **envp)
log_file = optarg;
break;
case QEMU_OPTION_s:
- gdbstub_dev = "tcp::" DEFAULT_GDBSTUB_PORT;
+ add_device_config(DEV_GDB, "tcp::" DEFAULT_GDBSTUB_PORT);
break;
case QEMU_OPTION_gdb:
- gdbstub_dev = optarg;
+ add_device_config(DEV_GDB, optarg);
break;
case QEMU_OPTION_L:
data_dir = optarg;
@@ -3500,9 +3500,7 @@ int main(int argc, char **argv, char **envp)
}
text_consoles_set_display(ds);
- if (gdbstub_dev && gdbserver_start(gdbstub_dev) < 0) {
- fprintf(stderr, "qemu: could not open gdbserver on device '%s'\n",
- gdbstub_dev);
+ if (foreach_device_config(DEV_GDB, gdbserver_start) < 0) {
exit(1);
}