mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-07-26 20:03:54 -06:00
system: propagate Error to gdbserver_start (and other device setups)
This started as a clean-up to properly pass a Error handler to the gdbserver_start so we could do the right thing for command line and HMP invocations. Now that we have cleaned up foreach_device_config_or_exit() in earlier patches we can further simplify by it by passing &error_fatal instead of checking the return value. Having a return value is still useful for HMP though so tweak the return to use a simple bool instead. Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org> Acked-by: Ilya Leoshkevich <iii@linux.ibm.com> Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Message-Id: <20250116160306.1709518-11-alex.bennee@linaro.org>
This commit is contained in:
parent
05cdd648a8
commit
c0e6b8b798
7 changed files with 62 additions and 59 deletions
|
@ -330,26 +330,27 @@ static void create_processes(GDBState *s)
|
|||
gdb_create_default_process(s);
|
||||
}
|
||||
|
||||
int gdbserver_start(const char *device)
|
||||
bool gdbserver_start(const char *device, Error **errp)
|
||||
{
|
||||
Chardev *chr = NULL;
|
||||
Chardev *mon_chr;
|
||||
g_autoptr(GString) cs = g_string_new(device);
|
||||
|
||||
if (!first_cpu) {
|
||||
error_report("gdbstub: meaningless to attach gdb to a "
|
||||
"machine without any CPU.");
|
||||
return -1;
|
||||
error_setg(errp, "gdbstub: meaningless to attach gdb to a "
|
||||
"machine without any CPU.");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!gdb_supports_guest_debug()) {
|
||||
error_report("gdbstub: current accelerator doesn't "
|
||||
"support guest debugging");
|
||||
return -1;
|
||||
error_setg(errp, "gdbstub: current accelerator doesn't "
|
||||
"support guest debugging");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (cs->len == 0) {
|
||||
return -1;
|
||||
error_setg(errp, "gdbstub: missing connection string");
|
||||
return false;
|
||||
}
|
||||
|
||||
trace_gdbstub_op_start(cs->str);
|
||||
|
@ -374,7 +375,8 @@ int gdbserver_start(const char *device)
|
|||
*/
|
||||
chr = qemu_chr_new_noreplay("gdb", cs->str, true, NULL);
|
||||
if (!chr) {
|
||||
return -1;
|
||||
error_setg(errp, "gdbstub: couldn't create chardev");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -406,7 +408,7 @@ int gdbserver_start(const char *device)
|
|||
gdbserver_system_state.mon_chr = mon_chr;
|
||||
gdb_syscall_reset();
|
||||
|
||||
return 0;
|
||||
return true;
|
||||
}
|
||||
|
||||
static void register_types(void)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue