From: "Rémi Bernon" Subject: [PATCH 2/3] winedbg: Use debug event code in packet_reply_status. Message-Id: <20200407173418.1432057-2-rbernon@codeweavers.com> Date: Tue, 7 Apr 2020 19:34:17 +0200 In-Reply-To: <20200407173418.1432057-1-rbernon@codeweavers.com> References: <20200407173418.1432057-1-rbernon@codeweavers.com> This will help expand later the cases to tell gdb about the cause of the break. Signed-off-by: Rémi Bernon --- 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 b3c4002b3b35..332fb0c9d3b6 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; } } -- 2.26.0