From dafa8b52d081c21befe44831bd3f94e619330adf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Bernon?= Date: Tue, 7 Apr 2020 19:34:17 +0200 Subject: [PATCH] winedbg: Use debug event code in packet_reply_status. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This will help expand later the cases to tell gdb about the cause of the break. Signed-off-by: RĂ©mi Bernon Signed-off-by: Alexandre Julliard --- programs/winedbg/gdbproxy.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/programs/winedbg/gdbproxy.c b/programs/winedbg/gdbproxy.c index b3c4002b3b3..332fb0c9d3b 100644 --- a/programs/winedbg/gdbproxy.c +++ b/programs/winedbg/gdbproxy.c @@ -874,10 +874,11 @@ static enum packet_return packet_reply_status(struct gdb_context* gdbctx) dbg_ctx_t ctx; size_t i; - if (process != NULL) + switch (gdbctx->de.dwDebugEventCode) { + default: + if (!process) return packet_error; if (!(backend = process->be_cpu)) return packet_error; - if (!(thread = dbg_get_thread(process, gdbctx->de.dwThreadId)) || !backend->get_context(thread->handle, &ctx)) return packet_error; @@ -900,13 +901,13 @@ static enum packet_return packet_reply_status(struct gdb_context* gdbctx) packet_reply_close(gdbctx); return packet_done; - } - else - { - /* Try to put an exit code - * Cannot use GetExitCodeProcess, wouldn't fit in a 8 bit value, so - * just indicate the end of process and exit */ - return packet_reply(gdbctx, "W00") | packet_last_f; + + case EXIT_PROCESS_DEBUG_EVENT: + packet_reply_open(gdbctx); + packet_reply_add(gdbctx, "W"); + packet_reply_val(gdbctx, gdbctx->de.u.ExitProcess.dwExitCode, 4); + packet_reply_close(gdbctx); + return packet_done | packet_last_f; } }